diff --git a/src/locale/en_US/LC_MESSAGES/django.po b/src/locale/en_US/LC_MESSAGES/django.po
index 0421bd3fa..c2d4e654a 100644
--- a/src/locale/en_US/LC_MESSAGES/django.po
+++ b/src/locale/en_US/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PyCon TW\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-07-14 20:02+0800\n"
+"POT-Creation-Date: 2024-07-30 14:26+0800\n"
"PO-Revision-Date: 2022-07-11 02:23+0800\n"
"Last-Translator: Tom Chen \n"
"Language-Team: English (United States) (http://www.transifex.com/pycon-"
@@ -506,7 +506,7 @@ msgstr "keynote events"
msgid "Keynote: {speaker}"
msgstr "Keynote: {speaker}"
-#: events/models.py:318 sponsors/models.py:105 sponsors/models.py:121
+#: events/models.py:318 sponsors/models.py:107 sponsors/models.py:123
msgid "sponsor"
msgstr "sponsor"
@@ -1462,71 +1462,75 @@ msgstr ""
msgid "order"
msgstr "order"
-#: sponsors/models.py:83
+#: sponsors/models.py:84
+msgid "diamond"
+msgstr "diamond"
+
+#: sponsors/models.py:85
msgid "platinum"
msgstr "platinum"
-#: sponsors/models.py:84
+#: sponsors/models.py:86
msgid "gold"
msgstr "gold"
-#: sponsors/models.py:85
+#: sponsors/models.py:87
msgid "silver"
msgstr "silver"
-#: sponsors/models.py:86
+#: sponsors/models.py:88
msgid "bronze"
msgstr "bronze"
-#: sponsors/models.py:87
+#: sponsors/models.py:89
msgid "special"
msgstr "special"
-#: sponsors/models.py:88
+#: sponsors/models.py:90
msgid "special-thanks"
msgstr "special-thanks"
-#: sponsors/models.py:89
+#: sponsors/models.py:91
msgid "organizer"
msgstr "organizer"
-#: sponsors/models.py:90
+#: sponsors/models.py:92
msgid "co-organizer"
msgstr "co-organizer"
-#: sponsors/models.py:91
+#: sponsors/models.py:93
msgid "sprint-co-organizer"
msgstr "sprint-coorganizer"
-#: sponsors/models.py:100
+#: sponsors/models.py:102
msgid "level"
msgstr "level"
-#: sponsors/models.py:106
+#: sponsors/models.py:108
msgid "sponsors"
msgstr "sponsors"
-#: sponsors/models.py:126
+#: sponsors/models.py:128
msgid "open role name"
msgstr "open role name"
-#: sponsors/models.py:131
+#: sponsors/models.py:133
msgid "open role description"
msgstr "open role description"
-#: sponsors/models.py:135
+#: sponsors/models.py:137
msgid "open role requirements"
msgstr "open role requirements"
-#: sponsors/models.py:140
+#: sponsors/models.py:142
msgid "open role URL"
msgstr "open role URL"
-#: sponsors/models.py:145
+#: sponsors/models.py:147
msgid "open role"
msgstr "open role"
-#: sponsors/models.py:146
+#: sponsors/models.py:148
msgid "open roles"
msgstr "open roles"
@@ -1674,11 +1678,11 @@ msgstr "Automated Processing of Blog Photographs"
#: templates/default/_includes/talk_proposal_alert.html:6
#, python-format
msgid ""
-"Please review the How to Propose a Talk page."
+"Please review the How to Propose a Talk page."
msgstr ""
-"Please review the How to Propose a Talk page."
+"Please review the How to Propose a Talk page."
#: templates/default/dashboard_base.html:6
#: templates/pycontw-2016/_includes/nav/front_nav.html:82
@@ -1855,11 +1859,11 @@ msgstr "Sign Up"
#: templates/default/registration/signup.html:13
#, python-format
msgid ""
-"Already have an account? Login."
+"Already have an account? Login."
msgstr ""
-"Already have an account? Login."
+"Already have an account? Login."
#: templates/default/registration/verification_email.txt:6
#, python-format
@@ -2124,13 +2128,11 @@ msgstr "New Talk Porposal"
#: templates/default/users/user_dashboard.html:33
#, python-format
msgid ""
-"You haven't submitted any talk proposals. Why not submit one "
-"now?"
+"You haven't submitted any talk proposals. Why not submit one now?"
msgstr ""
-"You haven't submitted any talk proposals. Why not submit one "
-"now?"
+"You haven't submitted any talk proposals. Why not submit one now?"
#: templates/default/users/user_dashboard.html:35
msgid "You haven't submitted any talk proposals."
@@ -2147,13 +2149,13 @@ msgstr "New Tutorial Porposal"
#: templates/default/users/user_dashboard.html:58
#, python-format
msgid ""
-"You haven't submitted any tutorial proposals. Why not submit "
-"one now?"
+"You haven't submitted any tutorial proposals. Why not submit one "
+"now?"
msgstr ""
-"You haven't submitted any tutorial proposals. Why not submit "
-"one now?"
+"You haven't submitted any tutorial proposals. Why not submit one "
+"now?"
#: templates/default/users/user_dashboard.html:60
msgid "You haven't submitted any tutorial proposals."
@@ -2520,15 +2522,15 @@ msgstr "Blog"
msgid ""
"This is the full schedule of talks for PyCon Taiwan 2016. See also: "
+"Our keynote speeches An alphabetically-sorted list of all talks "
+"ul>"
msgstr ""
"This is the full schedule of talks for PyCon Taiwan 2016. See also: "
+"Our keynote speeches An alphabetically-sorted list of all talks "
+"ul>"
#: templates/pycontw-2016/events/schedule.html:32
#: templates/pycontw-2016/events/talk_list.html:20
@@ -2587,11 +2589,11 @@ msgstr "Description"
#: templates/pycontw-2016/events/talk_list.html:14
#, python-format
msgid ""
-"You can check out the program schedule here."
+"You can check out the program schedule here."
msgstr ""
-"You can check out the program schedule here."
+"You can check out the program schedule here."
#: templates/pycontw-2016/events/talk_list.html:28
#: templates/pycontw-2017/events/talk_list.html:33
@@ -2602,13 +2604,11 @@ msgstr "Proposed Talks"
#: templates/pycontw-2017/events/talk_list.html:41
#, python-format
msgid ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
msgstr ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
#: templates/pycontw-2016/events/talk_list.html:38
msgid "Sponsored Events"
@@ -2618,11 +2618,11 @@ msgstr "Sponsored Events"
#: templates/pycontw-2017/events/talk_list.html:53
#, python-format
msgid ""
-"%(event_title)s by %(host_name)s"
+""
+"%(event_title)s by %(host_name)s"
msgstr ""
-"%(event_title)s by %(host_name)s"
+""
+"%(event_title)s by %(host_name)s"
#: templates/pycontw-2016/index.html:7
msgid ""
@@ -2713,21 +2713,21 @@ msgstr ""
#: templates/pycontw-2016/index.html:86
msgid ""
-"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for "
-"the discussion and promotion of the Python programming language. It is held "
-"by enthusiasts and focuses on Python technology and its versatile "
-"applications. We welcome people who are interested in Python to join PyCon "
-"Taiwan to share knowledge, exchange ideas, make connections and to help us "
-"grow our network.
"
+"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for the "
+"discussion and promotion of the Python programming language. It is held by "
+"enthusiasts and focuses on Python technology and its versatile applications. "
+"We welcome people who are interested in Python to join PyCon Taiwan to share "
+"knowledge, exchange ideas, make connections and to help us grow our network. "
+"
"
msgstr ""
-"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for "
-"the discussion and promotion of the Python programming language. It is held "
-"by enthusiasts and focuses on Python technology and its versatile "
-"applications. We welcome people who are interested in Python to join PyCon "
-"Taiwan to share knowledge, exchange ideas, make connections and to help us "
-"grow our network.
"
+"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for the "
+"discussion and promotion of the Python programming language. It is held by "
+"enthusiasts and focuses on Python technology and its versatile applications. "
+"We welcome people who are interested in Python to join PyCon Taiwan to share "
+"knowledge, exchange ideas, make connections and to help us grow our network. "
+"
"
#: templates/pycontw-2016/index.html:102
#, python-format
@@ -2736,15 +2736,15 @@ msgid ""
"height=\"22\" src=\"%(img_call_icon)s\" class=\"call__icon\"> Help us organize and make the conference "
"successful!
Please fill out
our volunteer form
"
+"forms/d/1zwc4khAW18myt6dJ_s_YtJOfQEobgz8KhcySKL0HXl4/viewform\" target="
+"\"_blank\" rel=\"noopener\">our volunteer form
"
msgstr ""
" Volunteers Needed!
Help us organize and make the conference "
"successful!
Please fill out
our volunteer form
"
+"forms/d/1zwc4khAW18myt6dJ_s_YtJOfQEobgz8KhcySKL0HXl4/viewform\" target="
+"\"_blank\" rel=\"noopener\">our volunteer form "
#: templates/pycontw-2016/index.html:132
msgid "Python Community in Taiwan"
@@ -2790,11 +2790,11 @@ msgstr ""
#: templates/pycontw-2016/registration/signup.html:25
#, python-format
msgid ""
-"Already have an account?Login."
+"Already have an account?Login."
msgstr ""
-"Already have an account?Login."
+"Already have an account?Login."
#: templates/pycontw-2017/_includes/header.html:48
msgid "about"
@@ -3069,11 +3069,11 @@ msgstr "Volunteers Needed"
#: templates/pycontw-2017/index.html:40
#, python-format
msgid ""
-"Help us organize and make the conference successful! Please fill out our volunteer form."
+"Help us organize and make the conference successful! Please fill out our volunteer form."
msgstr ""
-"Help us organize and make the conference successful! Please fill out our volunteer form."
+"Help us organize and make the conference successful! Please fill out our volunteer form."
#: templates/pycontw-2017/index.html:45
msgid ""
@@ -3462,13 +3462,11 @@ msgstr "Categories"
#: templates/pycontw-2019/events/talk_list.html:34
#, python-format
msgid ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
msgstr ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
#: templates/pycontw-2018/index.html:32 templates/pycontw-2019/index.html:39
#: templates/pycontw-2020/index.html:60 templates/pycontw-2021/index.html:63
diff --git a/src/locale/zh_Hant/LC_MESSAGES/django.po b/src/locale/zh_Hant/LC_MESSAGES/django.po
index 670ab8a7e..6f34ddf89 100644
--- a/src/locale/zh_Hant/LC_MESSAGES/django.po
+++ b/src/locale/zh_Hant/LC_MESSAGES/django.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PyCon TW\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-07-14 20:02+0800\n"
+"POT-Creation-Date: 2024-07-30 14:26+0800\n"
"PO-Revision-Date: 2022-07-11 02:25+0800\n"
"Last-Translator: Tom Chen \n"
"Language-Team: Chinese Traditional (http://www.transifex.com/pycon-taiwan/"
@@ -513,7 +513,7 @@ msgstr "基調演講"
msgid "Keynote: {speaker}"
msgstr "基調演講:{speaker}"
-#: events/models.py:318 sponsors/models.py:105 sponsors/models.py:121
+#: events/models.py:318 sponsors/models.py:107 sponsors/models.py:123
msgid "sponsor"
msgstr "贊助"
@@ -1416,71 +1416,75 @@ msgstr ""
msgid "order"
msgstr "排序"
-#: sponsors/models.py:83
+#: sponsors/models.py:84
+msgid "diamond"
+msgstr "鑽石級"
+
+#: sponsors/models.py:85
msgid "platinum"
msgstr "白金級"
-#: sponsors/models.py:84
+#: sponsors/models.py:86
msgid "gold"
msgstr "金級"
-#: sponsors/models.py:85
+#: sponsors/models.py:87
msgid "silver"
msgstr "銀級"
-#: sponsors/models.py:86
+#: sponsors/models.py:88
msgid "bronze"
msgstr "銅級"
-#: sponsors/models.py:87
+#: sponsors/models.py:89
msgid "special"
msgstr "特別贊助"
-#: sponsors/models.py:88
+#: sponsors/models.py:90
msgid "special-thanks"
msgstr "特別感謝"
-#: sponsors/models.py:89
+#: sponsors/models.py:91
msgid "organizer"
msgstr "主辦單位"
-#: sponsors/models.py:90
+#: sponsors/models.py:92
msgid "co-organizer"
msgstr "協辦單位"
-#: sponsors/models.py:91
+#: sponsors/models.py:93
msgid "sprint-co-organizer"
msgstr "衝刺開發協辦單位"
-#: sponsors/models.py:100
+#: sponsors/models.py:102
msgid "level"
msgstr "等級"
-#: sponsors/models.py:106
+#: sponsors/models.py:108
msgid "sponsors"
msgstr "贊助"
-#: sponsors/models.py:126
+#: sponsors/models.py:128
msgid "open role name"
msgstr "職缺名稱"
-#: sponsors/models.py:131
+#: sponsors/models.py:133
msgid "open role description"
msgstr "職缺說明"
-#: sponsors/models.py:135
+#: sponsors/models.py:137
msgid "open role requirements"
msgstr "職缺需求"
-#: sponsors/models.py:140
+#: sponsors/models.py:142
msgid "open role URL"
msgstr "職缺 URL"
-#: sponsors/models.py:145
+#: sponsors/models.py:147
msgid "open role"
msgstr "職缺"
-#: sponsors/models.py:146
+#: sponsors/models.py:148
msgid "open roles"
msgstr "職缺"
@@ -1625,11 +1629,11 @@ msgstr "自動處理部落格照片與加工"
#: templates/default/_includes/talk_proposal_alert.html:6
#, python-format
msgid ""
-"Please review the How to Propose a Talk page."
+"Please review the How to Propose a Talk page."
msgstr ""
-"請參見如何投稿演講頁面。"
+"請參見如何投稿演講頁面。"
#: templates/default/dashboard_base.html:6
#: templates/pycontw-2016/_includes/nav/front_nav.html:82
@@ -1761,8 +1765,8 @@ msgid ""
"Don't have an account? Sign up now!"
msgstr ""
-"沒有帳號? 馬上註冊一個!"
+"沒有帳號? 馬上註冊一個!"
#: templates/default/registration/password_reset_confirm.html:13
msgid ""
@@ -1801,11 +1805,11 @@ msgstr "註冊"
#: templates/default/registration/signup.html:13
#, python-format
msgid ""
-"Already have an account? Login."
+"Already have an account? Login."
msgstr ""
-"已有帳號? 按此登入。"
+"已有帳號? 按此登入。"
#: templates/default/registration/verification_email.txt:6
#, python-format
@@ -1968,9 +1972,9 @@ msgid ""
"process, please refer to the GitBook Review Guideline."
msgstr ""
-"注意:投稿人與其他審稿人都不會知道你的身份。審稿程序的詳細資訊參見審稿指南。"
+"注意:投稿人與其他審稿人都不會知道你的身份。審稿程序的詳細資訊參見審稿指南。"
#: templates/default/reviews/talk_proposal_list.html:23
msgid "Personal Review Stats"
@@ -2064,12 +2068,11 @@ msgstr "投稿新演講"
#: templates/default/users/user_dashboard.html:33
#, python-format
msgid ""
-"You haven't submitted any talk proposals. Why not submit one "
-"now?"
+"You haven't submitted any talk proposals. Why not submit one now?"
msgstr ""
-"您尚未投稿演講,何不馬上建立一個?"
+"您尚未投稿演講,何不馬上建立一個?"
#: templates/default/users/user_dashboard.html:35
msgid "You haven't submitted any talk proposals."
@@ -2086,9 +2089,9 @@ msgstr "投稿新專業課程"
#: templates/default/users/user_dashboard.html:58
#, python-format
msgid ""
-"You haven't submitted any tutorial proposals. Why not submit "
-"one now?"
+"You haven't submitted any tutorial proposals. Why not submit one "
+"now?"
msgstr ""
"您尚未投稿專業課程,何不馬上建立一個?"
@@ -2457,14 +2460,14 @@ msgstr "部落格"
msgid ""
"This is the full schedule of talks for PyCon Taiwan 2016. See also: "
+"Our keynote speeches An alphabetically-sorted list of all talks "
+"ul>"
msgstr ""
-"這是 PyCon Taiwan 2016 的完整演講時間表。另可參考:"
+"這是 PyCon Taiwan 2016 的完整演講時間表。另可參考:"
#: templates/pycontw-2016/events/schedule.html:32
#: templates/pycontw-2016/events/talk_list.html:20
@@ -2523,8 +2526,8 @@ msgstr "說明"
#: templates/pycontw-2016/events/talk_list.html:14
#, python-format
msgid ""
-"You can check out the program schedule here."
+"You can check out the program schedule here."
msgstr ""
"您可由此處檢視議程"
"時間表。"
@@ -2538,13 +2541,11 @@ msgstr "一般演講"
#: templates/pycontw-2017/events/talk_list.html:41
#, python-format
msgid ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
msgstr ""
-"%(proposal_title)s "
-"%(speaker_names)s"
+""
+"%(proposal_title)s %(speaker_names)s"
#: templates/pycontw-2016/events/talk_list.html:38
msgid "Sponsored Events"
@@ -2554,12 +2555,11 @@ msgstr "贊助演講"
#: templates/pycontw-2017/events/talk_list.html:53
#, python-format
msgid ""
-"%(event_title)s by %(host_name)s"
+""
+"%(event_title)s by %(host_name)s"
msgstr ""
-"%(event_title)s "
-"%(host_name)s"
+""
+"%(event_title)s %(host_name)s"
#: templates/pycontw-2016/index.html:7
msgid ""
@@ -2648,16 +2648,16 @@ msgstr ""
#: templates/pycontw-2016/index.html:86
msgid ""
-"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for "
-"the discussion and promotion of the Python programming language. It is held "
-"by enthusiasts and focuses on Python technology and its versatile "
-"applications. We welcome people who are interested in Python to join PyCon "
-"Taiwan to share knowledge, exchange ideas, make connections and to help us "
-"grow our network.
"
+"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for the "
+"discussion and promotion of the Python programming language. It is held by "
+"enthusiasts and focuses on Python technology and its versatile applications. "
+"We welcome people who are interested in Python to join PyCon Taiwan to share "
+"knowledge, exchange ideas, make connections and to help us grow our network. "
+"
"
msgstr ""
-"何謂 PyCon Taiwan
\n"
+"
何謂 PyCon Taiwan
\n"
"PyCon Taiwan 為一年一度由愛好者舉辦、討論並提倡使用 Python 程式語言的會議,聚"
"焦在 Python 技術與其多樣的可能應用的交流。我們歡迎所有對 Python 有興趣的朋友"
"一同加入 PyCon Taiwan 來分享所學、交換想法、並且認識更多同好。
"
@@ -2669,13 +2669,13 @@ msgid ""
"height=\"22\" src=\"%(img_call_icon)s\" class=\"call__icon\">
Help us organize and make the conference "
"successful!
Please fill out
our volunteer form
"
+"forms/d/1zwc4khAW18myt6dJ_s_YtJOfQEobgz8KhcySKL0HXl4/viewform\" target="
+"\"_blank\" rel=\"noopener\">our volunteer form
"
msgstr ""
-" 志工招募中!
與我們共同籌備並讓這個會議更成功!
請填"
-"寫我們的 志工招募中! 與我們共同籌備並讓這個會議更成功!
請填寫我們"
+"的志工參加表
"
@@ -2723,8 +2723,8 @@ msgstr ""
#: templates/pycontw-2016/registration/signup.html:25
#, python-format
msgid ""
-"Already have an account?Login."
+"Already have an account?Login."
msgstr ""
"已經有帳號了?請登入。"
@@ -2997,8 +2997,8 @@ msgstr "徵求志工"
#: templates/pycontw-2017/index.html:40
#, python-format
msgid ""
-"Help us organize and make the conference successful! Please fill out our volunteer form."
+"Help us organize and make the conference successful! Please fill out our volunteer form."
msgstr ""
"幫我們一起讓會議變得更好!請填寫志工表單"
"a>。"
@@ -3383,12 +3383,11 @@ msgstr "主題分類"
#: templates/pycontw-2019/events/talk_list.html:34
#, python-format
msgid ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
msgstr ""
-"%(proposal_title)s — %(speaker_names)s"
+""
+"%(proposal_title)s — %(speaker_names)s"
#: templates/pycontw-2018/index.html:32 templates/pycontw-2019/index.html:39
#: templates/pycontw-2020/index.html:60 templates/pycontw-2021/index.html:63
diff --git a/src/sponsors/migrations/0034_alter_sponsor_level.py b/src/sponsors/migrations/0034_alter_sponsor_level.py
new file mode 100644
index 000000000..218cce8a1
--- /dev/null
+++ b/src/sponsors/migrations/0034_alter_sponsor_level.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.25 on 2024-07-30 06:26
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('sponsors', '0033_sponsor_is_shown'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='sponsor',
+ name='level',
+ field=models.SmallIntegerField(choices=[(0, 'diamond'), (1, 'platinum'), (2, 'gold'), (3, 'silver'), (4, 'bronze'), (5, 'special'), (6, 'special-thanks'), (7, 'organizer'), (8, 'co-organizer'), (9, 'sprint-co-organizer')], verbose_name='level'),
+ ),
+ ]
diff --git a/src/sponsors/models.py b/src/sponsors/models.py
index 1be741229..e3035d8b7 100644
--- a/src/sponsors/models.py
+++ b/src/sponsors/models.py
@@ -66,6 +66,7 @@ class Sponsor(ConferenceRelated):
)
class Level:
+ DIAMOND = 0
PLATINUM = 1
GOLD = 2
SILVER = 3
@@ -80,6 +81,7 @@ class Level:
PARTNER = COORGANIZER
LEVEL_CHOICES = (
+ (Level.DIAMOND, _('diamond')),
(Level.PLATINUM, _('platinum')),
(Level.GOLD, _('gold')),
(Level.SILVER, _('silver')),