- {{ sponsor.name }} -
--
diff --git a/src/attendee/tests.py b/src/attendee/tests.py
index 9d5392238..4bc3a67f9 100644
--- a/src/attendee/tests.py
+++ b/src/attendee/tests.py
@@ -1,6 +1,7 @@
import pytest
from django.conf import settings
from registry.helper import reg
+from rest_framework.test import APIClient
from attendee.models import Attendee
from core.models import Token
@@ -13,9 +14,10 @@
('1234', 200, 2),
])
@pytest.mark.django_db
-def test_attendee(drf_api_client, bare_user, attendee_token, status, num_channel):
+def test_attendee(bare_user, attendee_token, status, num_channel):
+ api_client = APIClient()
token = Token.objects.get_or_create(user=bare_user)
- drf_api_client.credentials(HTTP_AUTHORIZATION="Token " + str(token[0]))
+ api_client.credentials(HTTP_AUTHORIZATION="Token " + str(token[0]))
attendee = Attendee(token="1234")
attendee.save() # insert to database
# add slug
@@ -25,7 +27,7 @@ def test_attendee(drf_api_client, bare_user, attendee_token, status, num_channel
reg[f"{key_prefix}r{i}"] = f"video_id_{i}"
# test
- response = drf_api_client.post('/api/attendee/verify/', data={"token": attendee_token})
+ response = api_client.post('/api/attendee/verify/', data={"token": attendee_token})
assert response.status_code == status
if status == 200:
assert len(response.json()["youtube_infos"]) == num_channel
diff --git a/src/ccip/urls.py b/src/ccip/urls.py
index 8dce61845..81de68980 100644
--- a/src/ccip/urls.py
+++ b/src/ccip/urls.py
@@ -5,6 +5,5 @@
urlpatterns = [
# API for CCIP
url(r'^$', views.CCIPAPIView.as_view()),
- url(r'^sponsors/$', views.CCIPSponsorsView.as_view()),
url(r'^staff/$', views.CCIPStaffView.as_view()),
]
diff --git a/src/ccip/views.py b/src/ccip/views.py
index c11d4fd50..0be66c732 100644
--- a/src/ccip/views.py
+++ b/src/ccip/views.py
@@ -9,7 +9,6 @@
from django.views.generic import TemplateView, View
from core.utils import TemplateExistanceStatusResponse
-from core.views import IndexView
from events.models import (
CustomEvent,
KeynoteEvent,
@@ -287,11 +286,6 @@ def _room_sort_key(v):
}, safe=False)
-class CCIPSponsorsView(IndexView):
- template_name = 'ccip/sponsors.html'
- response_class = TemplateExistanceStatusResponse
-
-
class CCIPStaffView(TemplateView):
template_name = 'ccip/staff.html'
response_class = TemplateExistanceStatusResponse
diff --git a/src/conftest.py b/src/conftest.py
index 4945322ca..6278dd7bc 100644
--- a/src/conftest.py
+++ b/src/conftest.py
@@ -8,8 +8,9 @@
from django.test.html import parse_html
from rest_framework.test import APIClient
+from core.models import Token
from proposals.models import TalkProposal
-from users.models import CocRecord
+from users.models import CocRecord, User
class HTMLParser:
@@ -206,5 +207,8 @@ def accepted_talk_proposal(talk_proposal):
@pytest.fixture
-def drf_api_client():
- return APIClient()
+def api_client(bare_user: User) -> APIClient:
+ api_client = APIClient()
+ token, _ = Token.objects.get_or_create(user=bare_user)
+ api_client.credentials(HTTP_AUTHORIZATION=f"Token {token.key}")
+ yield api_client
diff --git a/src/core/context_processors.py b/src/core/context_processors.py
index 5ceb6e392..efaba2d7a 100644
--- a/src/core/context_processors.py
+++ b/src/core/context_processors.py
@@ -1,11 +1,5 @@
-import itertools
-import operator
-
from django.conf import settings
from django.urls import get_script_prefix
-from django.utils.translation import get_language
-
-from sponsors.models import Sponsor
def _build_google_form_url(uid):
@@ -19,13 +13,7 @@ def script_prefix(request):
def pycontw(request):
- lang = get_language()
- if lang and lang.startswith('zh'):
- sponsor_id = '1FAIpQLScEIeCrTHNvwbdNbZt4nK1mteC6NzHtXgF5bVn1KTtR0_sorA'
- volun_id = '1FAIpQLScYhMAg4_T4Shi-W0vt9EkGyrpTMHemvcY55ZKc2-MfVqDzGg'
- else:
- sponsor_id = '1FAIpQLScEIeCrTHNvwbdNbZt4nK1mteC6NzHtXgF5bVn1KTtR0_sorA'
- volun_id = '1FAIpQLScYhMAg4_T4Shi-W0vt9EkGyrpTMHemvcY55ZKc2-MfVqDzGg'
+ volun_id = '1FAIpQLScYhMAg4_T4Shi-W0vt9EkGyrpTMHemvcY55ZKc2-MfVqDzGg'
return {
'GTM_TRACK_ID': settings.GTM_TRACK_ID,
'KKTIX_URL': {
@@ -33,26 +21,9 @@ def pycontw(request):
'INDI': 'https://pycontw.kktix.cc/events/20200905-individual',
'CORP': 'https://pycontw.kktix.cc/events/20200905-corporate',
},
- 'SPONSOR_FORM_URL': _build_google_form_url(sponsor_id),
'VOLUNTEER_FORM_URL': _build_google_form_url(volun_id),
}
-def _iter_sponsor_section():
- groups = itertools.groupby(
- Sponsor.objects.order_by('level'),
- key=operator.methodcaller('get_level_display'),
- )
- for k, v in groups:
- yield k, list(v)
-
-
-def sponsors(request):
- return {
- 'sponsors': Sponsor.objects.order_by('level'),
- 'sponsor_sections': _iter_sponsor_section(),
- }
-
-
def frontend_host(request):
return {'FRONTEND_HOST': settings.FRONTEND_HOST}
diff --git a/src/core/data.py b/src/core/data.py
deleted file mode 100644
index 42b13cb0c..000000000
--- a/src/core/data.py
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-def get_sponsors():
- from sponsors.models import Sponsor
- return Sponsor.objects.all()
-
-
-EXTRA_DATA = {}
-EXTRA_DATA[''] = {
- 'sponsors': get_sponsors,
-}
diff --git a/src/core/views.py b/src/core/views.py
index 19fbb43ab..60eea3222 100644
--- a/src/core/views.py
+++ b/src/core/views.py
@@ -6,21 +6,13 @@
from django.views.defaults import page_not_found, server_error
from django.views.generic import TemplateView
-from .data import EXTRA_DATA
from .utils import (
TemplateExistanceStatusResponse,
collect_language_codes,
)
-class ExtraDataMixin:
- def get_context_data(self, **kwargs):
- data = super().get_context_data(**kwargs)
- data.update(EXTRA_DATA.get(self.path, {}))
- return data
-
-
-class IndexView(ExtraDataMixin, TemplateView):
+class IndexView(TemplateView):
template_name = 'index.html'
path = ''
@@ -28,7 +20,7 @@ def dispatch(self, request, *args, **kwargs):
return redirect(reverse('user_dashboard'))
-class FlatPageView(ExtraDataMixin, TemplateView):
+class FlatPageView(TemplateView):
response_class = TemplateExistanceStatusResponse
diff --git a/src/events/templatetags/events.py b/src/events/templatetags/events.py
index 3ba31e503..e6147c2c4 100644
--- a/src/events/templatetags/events.py
+++ b/src/events/templatetags/events.py
@@ -2,7 +2,6 @@
from django.template import Library
from events.models import KeynoteEvent
-from sponsors.models import OpenRole, Sponsor
register = Library()
@@ -22,20 +21,3 @@ def event_date_display(event):
@register.simple_tag
def get_keynote_events():
return KeynoteEvent.objects.order_by('begin_time')
-
-
-def _get_sponsors_with_open_roles():
- sponsor_has_open_role = set(OpenRole.objects.values_list('sponsor', flat=True))
- sponsor_set = Sponsor.objects.filter(id__in=sponsor_has_open_role).order_by('level')
-
- return sponsor_set
-
-
-@register.simple_tag
-def get_open_roles_of_sponsors():
- return _get_sponsors_with_open_roles()
-
-
-@register.simple_tag
-def get_open_roles():
- return OpenRole.objects.order_by('sponsor')
diff --git a/src/events/tests/api/test_list_speeches.py b/src/events/tests/api/test_list_speeches.py
index 577009356..e6e2d19cd 100644
--- a/src/events/tests/api/test_list_speeches.py
+++ b/src/events/tests/api/test_list_speeches.py
@@ -1,7 +1,6 @@
import pytest
from django.urls import reverse
-from core.models import Token
from events.models import ProposedTalkEvent, ProposedTutorialEvent, SponsoredEvent
@@ -34,11 +33,9 @@
"INTNL",
],
)
-def test_list_speeches_by_category(category, bare_user, drf_api_client):
+def test_list_speeches_by_category(category, api_client):
url = reverse("events:speeches-category", kwargs={"category": category})
- token = Token.objects.get_or_create(user=bare_user)
- drf_api_client.credentials(HTTP_AUTHORIZATION="Token " + str(token[0]))
- response = drf_api_client.get(url)
+ response = api_client.get(url)
for event in response.json():
assert event["category"] == category
diff --git a/src/locale/en_US/LC_MESSAGES/django.po b/src/locale/en_US/LC_MESSAGES/django.po
index 97ad6e3ca..cd1932195 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-04-15 16:57+0800\n"
+"POT-Creation-Date: 2024-04-15 17:45+0800\n"
"PO-Revision-Date: 2022-07-11 02:23+0800\n"
"Last-Translator: Tom Chen The original PyCon was formed in North America in 2003, and now there are "
"many other conferences being run in the PyCon spirit around the world.
PyCon Taiwan is an annual convention in Taiwan for the discussion and "
"promotion of the Python programming language. It is held by enthusiasts and "
@@ -3520,10 +3516,6 @@ msgstr "Program Book"
#: templates/pycontw-2019/_includes/sponsors.html:53
#: templates/pycontw-2020/_includes/sponsors.html:57
-#: templates/pycontw-2021/_includes/sponsors.html:57
-#: templates/pycontw-2022/_includes/sponsors.html:57
-#: templates/pycontw-2023/_includes/sponsors.html:57
-#: templates/pycontw-2024/_includes/sponsors.html:57
msgid "Redirect to official website"
msgstr "Redirect to official website"
@@ -4335,10 +4327,10 @@ msgid "Warm-Up Session"
msgstr "Warm-Up Session"
#: templates/pycontw-2020/_includes/menu.html:132
-#: templates/pycontw-2021/_includes/menu.html:144
-#: templates/pycontw-2022/_includes/menu.html:144
-#: templates/pycontw-2023/_includes/menu.html:144
-#: templates/pycontw-2024/_includes/menu.html:144
+#: templates/pycontw-2021/_includes/menu.html:137
+#: templates/pycontw-2022/_includes/menu.html:137
+#: templates/pycontw-2023/_includes/menu.html:137
+#: templates/pycontw-2024/_includes/menu.html:137
msgctxt "COVID-19 Guidelines"
msgid "COVID-19 Guidelines"
msgstr "COVID-19 Guidelines"
@@ -4360,10 +4352,6 @@ msgid "Open space"
msgstr "Open space"
#: templates/pycontw-2020/_includes/sponsors.html:5
-#: templates/pycontw-2021/_includes/sponsors.html:5
-#: templates/pycontw-2022/_includes/sponsors.html:5
-#: templates/pycontw-2023/_includes/sponsors.html:5
-#: templates/pycontw-2024/_includes/sponsors.html:5
msgid "Sponsor Partners"
msgstr "Sponsor Partners"
@@ -4413,14 +4401,6 @@ msgstr ""
#: templates/pycontw-2020/contents/_default/events/job-listings.html:53
#: templates/pycontw-2020/contents/_default/events/job-listings.html:58
-#: templates/pycontw-2021/contents/_default/events/job-listings.html:53
-#: templates/pycontw-2021/contents/_default/events/job-listings.html:58
-#: templates/pycontw-2022/contents/_default/events/job-listings.html:53
-#: templates/pycontw-2022/contents/_default/events/job-listings.html:58
-#: templates/pycontw-2023/contents/_default/events/job-listings.html:53
-#: templates/pycontw-2023/contents/_default/events/job-listings.html:58
-#: templates/pycontw-2024/contents/_default/events/job-listings.html:53
-#: templates/pycontw-2024/contents/_default/events/job-listings.html:58
msgid "Open Roles"
msgstr "Open Roles"
diff --git a/src/locale/zh_Hant/LC_MESSAGES/django.po b/src/locale/zh_Hant/LC_MESSAGES/django.po
index 2cd23cbca..645976e65 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-04-15 16:57+0800\n"
+"POT-Creation-Date: 2024-04-15 17:45+0800\n"
"PO-Revision-Date: 2022-07-11 02:25+0800\n"
"Last-Translator: Tom Chen The original PyCon was formed in North America in 2003, and now there are "
"many other conferences being run in the PyCon spirit around the world.
PyCon Taiwan is an annual convention in Taiwan for the discussion and " "promotion of the Python programming language. It is held by enthusiasts and " @@ -3439,10 +3435,6 @@ msgstr "大會手冊" #: templates/pycontw-2019/_includes/sponsors.html:53 #: templates/pycontw-2020/_includes/sponsors.html:57 -#: templates/pycontw-2021/_includes/sponsors.html:57 -#: templates/pycontw-2022/_includes/sponsors.html:57 -#: templates/pycontw-2023/_includes/sponsors.html:57 -#: templates/pycontw-2024/_includes/sponsors.html:57 msgid "Redirect to official website" msgstr "導回官方網站" @@ -4221,10 +4213,10 @@ msgid "Warm-Up Session" msgstr "暖身活動" #: templates/pycontw-2020/_includes/menu.html:132 -#: templates/pycontw-2021/_includes/menu.html:144 -#: templates/pycontw-2022/_includes/menu.html:144 -#: templates/pycontw-2023/_includes/menu.html:144 -#: templates/pycontw-2024/_includes/menu.html:144 +#: templates/pycontw-2021/_includes/menu.html:137 +#: templates/pycontw-2022/_includes/menu.html:137 +#: templates/pycontw-2023/_includes/menu.html:137 +#: templates/pycontw-2024/_includes/menu.html:137 msgctxt "COVID-19 Guidelines" msgid "COVID-19 Guidelines" msgstr "COVID-19 防疫守則" @@ -4246,10 +4238,6 @@ msgid "Open space" msgstr "Open space 揪團" #: templates/pycontw-2020/_includes/sponsors.html:5 -#: templates/pycontw-2021/_includes/sponsors.html:5 -#: templates/pycontw-2022/_includes/sponsors.html:5 -#: templates/pycontw-2023/_includes/sponsors.html:5 -#: templates/pycontw-2024/_includes/sponsors.html:5 msgid "Sponsor Partners" msgstr "贊助夥伴" @@ -4299,14 +4287,6 @@ msgstr "即將公佈" #: templates/pycontw-2020/contents/_default/events/job-listings.html:53 #: templates/pycontw-2020/contents/_default/events/job-listings.html:58 -#: templates/pycontw-2021/contents/_default/events/job-listings.html:53 -#: templates/pycontw-2021/contents/_default/events/job-listings.html:58 -#: templates/pycontw-2022/contents/_default/events/job-listings.html:53 -#: templates/pycontw-2022/contents/_default/events/job-listings.html:58 -#: templates/pycontw-2023/contents/_default/events/job-listings.html:53 -#: templates/pycontw-2023/contents/_default/events/job-listings.html:58 -#: templates/pycontw-2024/contents/_default/events/job-listings.html:53 -#: templates/pycontw-2024/contents/_default/events/job-listings.html:58 msgid "Open Roles" msgstr "職缺" diff --git a/src/proposals/tests/api/test_proposals_summary.py b/src/proposals/tests/api/test_proposals_summary.py index b9f2f6f97..1afa5cc1b 100644 --- a/src/proposals/tests/api/test_proposals_summary.py +++ b/src/proposals/tests/api/test_proposals_summary.py @@ -1,19 +1,19 @@ +from rest_framework.test import APIClient + endpoint = "/api/proposals/summary/" def test_proposals_summary( - user, - drf_api_client, + api_client, # authorized talk_proposal, tutorial_proposal, stage_1_review, stage_2_review, ): - response = drf_api_client.get(endpoint) + response = APIClient().get(endpoint) assert response.status_code == 401 - drf_api_client.force_authenticate(user=user) - response = drf_api_client.get(endpoint) + response = api_client.get(endpoint) data = response.data assert data["num_proposed_talk"] == 1 diff --git a/src/pycontw2016/settings/base.py b/src/pycontw2016/settings/base.py index e4f61fde9..d86119642 100644 --- a/src/pycontw2016/settings/base.py +++ b/src/pycontw2016/settings/base.py @@ -44,7 +44,6 @@ 'django.template.context_processors.request', 'core.context_processors.script_prefix', 'core.context_processors.pycontw', - 'core.context_processors.sponsors', 'core.context_processors.frontend_host', ], 'debug': True, diff --git a/src/sponsors/api/serializers.py b/src/sponsors/api/serializers.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/sponsors/migrations/0032_fix_verbose_typo.py b/src/sponsors/migrations/0032_fix_verbose_typo.py new file mode 100644 index 000000000..6f7252cd4 --- /dev/null +++ b/src/sponsors/migrations/0032_fix_verbose_typo.py @@ -0,0 +1,32 @@ +# Generated by Django 3.2.25 on 2024-04-15 09:30 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sponsors', '0031_auto_20240127_1104'), + ] + + operations = [ + migrations.AlterModelOptions( + name='openrole', + options={'verbose_name': 'open role', 'verbose_name_plural': 'open roles'}, + ), + migrations.AlterField( + model_name='openrole', + name='description', + field=models.TextField(verbose_name='open role description'), + ), + migrations.AlterField( + model_name='openrole', + name='description_en_us', + field=models.TextField(null=True, verbose_name='open role description'), + ), + migrations.AlterField( + model_name='openrole', + name='description_zh_hant', + field=models.TextField(null=True, verbose_name='open role description'), + ), + ] diff --git a/src/sponsors/models.py b/src/sponsors/models.py index c339cdcca..9691af375 100644 --- a/src/sponsors/models.py +++ b/src/sponsors/models.py @@ -120,7 +120,7 @@ class OpenRole(ConferenceRelated): ) description = models.TextField( - verbose_name=_('open role descsription'), + verbose_name=_('open role description'), ) requirements = models.TextField( @@ -135,7 +135,7 @@ class OpenRole(ConferenceRelated): class Meta: verbose_name = _('open role') - verbose_name_plural = _('open Roles') + verbose_name_plural = _('open roles') def __str__(self): return self.name diff --git a/src/sponsors/templatetags/sponsors.py b/src/sponsors/templatetags/sponsors.py deleted file mode 100644 index 4a2de2c26..000000000 --- a/src/sponsors/templatetags/sponsors.py +++ /dev/null @@ -1,32 +0,0 @@ -import collections -import json - -from django.core.serializers.json import DjangoJSONEncoder -from django.template import Library -from django.utils.html import linebreaks - -from sponsors.models import Sponsor - -register = Library() - - -@register.filter -def sponsor_jsonize(sponsors): - sponsor_lists = {level: [] for level, _ in Sponsor.LEVEL_CHOICES} - sponsor_info_dict = collections.OrderedDict( - (f'level-{level}', { - 'name': name, - 'sponsors': sponsor_lists[level], - }) - for (level, name) in Sponsor.LEVEL_CHOICES - ) - for sponsor in sponsors: - sponsor_info = { - 'name': sponsor.name, - 'website_url': sponsor.website_url, - 'intro_html': linebreaks(sponsor.intro), - } - if sponsor.logo: - sponsor_info['logo'] = sponsor.logo.url - sponsor_lists[sponsor.level].append(sponsor_info) - return json.dumps({'sponsors': sponsor_info_dict}, cls=DjangoJSONEncoder) diff --git a/src/sponsors/tests.py b/src/sponsors/tests.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/sponsors/templatetags/__init__.py b/src/sponsors/tests/__init__.py similarity index 100% rename from src/sponsors/templatetags/__init__.py rename to src/sponsors/tests/__init__.py diff --git a/src/sponsors/tests/test_api.py b/src/sponsors/tests/test_api.py new file mode 100644 index 000000000..169188988 --- /dev/null +++ b/src/sponsors/tests/test_api.py @@ -0,0 +1,72 @@ +import pytest + +from sponsors.models import OpenRole, Sponsor + + +@pytest.fixture(autouse=True, scope='function') +def test_data(): + # sponsors + # platinum + sponsor_1 = Sponsor.objects.create(name='1', level=1) + # gold + sponsor_2 = Sponsor.objects.create(name='2', level=2, order=2) + sponsor_3 = Sponsor.objects.create(name='3', level=2, order=None) # noqa + sponsor_4 = Sponsor.objects.create(name='4', level=2, order=1) # noqa + + # roles + OpenRole.objects.create(sponsor=sponsor_1, name='11', description='...') + OpenRole.objects.create(sponsor=sponsor_2, name='21', description='...') + OpenRole.objects.create(sponsor=sponsor_2, name='22', description='...') + + +@pytest.mark.django_db +class TestSponsorAPIView: + def test_should_get_sponsor_data(self, api_client): + # arrange: test_data fixture + # action + resp = api_client.get('/api/sponsors/') + + # assert + assert resp.status_code == 200 + + data = {level_data['level_name']: level_data['sponsors'] for level_data in resp.data['data']} + assert list(data.keys()) == ['platinum', 'gold'] + + # assert: should have correct sponsor count + platinum_sponsors = data['platinum'] + assert len(platinum_sponsors) == 1 + + gold_sponsors = data['gold'] + assert len(gold_sponsors) == 3 + + # assert: gold sponsors should be in correct sequence + # small-order > large-order > null-order + gold_sponsor_names = [s['name_en_us'] for s in gold_sponsors] + assert gold_sponsor_names == ['4', '2', '3'] + + def test_should_get_role_data(self, api_client): + # arrange: test_data fixture + # action + resp = api_client.get('/api/sponsors/jobs/') + + # assert + assert resp.status_code == 200 + + data = resp.json()['data'] + assert len(data) == 2 + + # assert: sponsor 1 + assert data[0]['sponsor_name'] == '1' + + jobs_1 = data[0]['jobs'] + assert len(jobs_1) == 1 + assert jobs_1[0]['job_name_en_us'] == '11' + + # assert: sponsor 2 + assert data[1]['sponsor_name'] == '2' + + jobs_2 = data[1]['jobs'] + assert len(jobs_2) == 2 + + job_names = [j['job_name_en_us'] for j in jobs_2] + assert set(job_names) == {'21', '22'} diff --git a/src/static/css/main.scss b/src/static/css/main.scss index 4656ab34a..962ffb4d4 100644 --- a/src/static/css/main.scss +++ b/src/static/css/main.scss @@ -29,7 +29,6 @@ @import "pages/keynotes"; @import "pages/reviews"; @import "pages/sprints"; -@import "pages/sponsors"; @import "pages/talks"; @import "pages/venue"; @@ -263,63 +262,7 @@ body { } -.section.sponsorship { - margin-top: 6em; - margin-bottom: 2em; -} - -.sponsorship { - background-color: $theme-color; - background-repeat: no-repeat; - background-image: url(static('images/bg_section-sponsorship.svg')); - background-size: contain; - background-position: center; - background-origin: content-box; - padding-left: 4em; - padding-right: 4em; - text-align: center; - color: white; - font-size: 18px; - a { - color: white; - text-decoration: underline; - } - > .container { - max-width: 100%; - } -} - -@media (max-width: $screen-md) { - .sponsorship { - background-image: none; - } -} - -.sponsorship__call { - @include make-sm-column(10); - @include make-sm-column-offset(1); - @include make-md-column(8); - @include make-md-column-offset(2); - @include make-lg-column(6); - @include make-lg-column-offset(3); - padding: .3em 1em; - margin-top: .5em; - margin-bottom: 1.5em; - border-radius: 400px; // large number for capsule shape - font-size: 36px; - color: $theme-color; - background-color: white; -} - - @media (max-width: $screen-xs) { - .sponsorship__call{ - font-size: 28px; - } - .sponsorship { - padding-left: 2em; - padding-right: 2em; - } .intro__pycontw { margin-top: -4em; margin-bottom: 4em; @@ -348,8 +291,6 @@ body { } } - - .conf { background: url(static('images/bg_section-conf.svg')) no-repeat; background-size: 50% auto; @@ -357,7 +298,6 @@ body { } - .footer { background-color: $footer-bg; color: $footer-color; @@ -366,12 +306,6 @@ body { line-height: 40px; } -.sponsors__logo { - > a img{ - margin: 2em auto 4em; - max-height: 80px; - } -} .social-btn { color: $theme-color; diff --git a/src/static/css/pages/_sponsors.scss b/src/static/css/pages/_sponsors.scss deleted file mode 100644 index 3b56506ba..000000000 --- a/src/static/css/pages/_sponsors.scss +++ /dev/null @@ -1,164 +0,0 @@ -$sponsor-img-height: 75px; - -@mixin sponsor-decoration($color, $size: 20px) { - border:5px solid $color; - &:before { - display: block; - position: absolute; - top: 20px; - left: 20px; - content: ""; - width: $size; - height: $size; - background-color: $color; - border-radius: 100%; - } -} - -.sponsor-page { - background-color: $sponsor-bg; - - .content-container { - max-width: none; - } -} - -.sponsor-section { - @include make-row(); - margin-bottom: 20px; - &__title { - @include make-md-column(12); - color: #fff; - } -} - - -.sponsor-wrapper { - &--partner, &--platinum, &--gold { - @include make-xs-column(12); - } - &--silver { - //@include make-xs-column(12); - @include make-md-column(6); - } - - &--special, &--bronze { - @include make-md-column(4); - } -} - -.sponsor { - padding: 30px; - margin-bottom: 30px; - background-color: #fff; - border-radius: 3px; - position: relative; - - &__logo-wrapper { - @include make-xs-column(12); - height: $sponsor-img-height; - display: flex; - align-items: center; - margin-bottom: 30px; - - a { - margin: 0 auto; - max-width: 100%; - } - } - - &__logo { - max-height: $sponsor-img-height; - - } - - &__title { - text-align: center; - font-size: 20px; - color: $theme-color; - margin-bottom: 20px; - } - - &__intro { - line-height: 22px; - overflow: auto; - } - - &.sponsor--platinum, &.sponsor--partner{ - @include sponsor-decoration($sponsor-platinum-color, 30px); - background: white; - background: - linear-gradient(135deg, $sponsor-platinum-color 0px, white 0) top left, - linear-gradient(225deg, $sponsor-platinum-color 30px, white 0) top right, - linear-gradient(-45deg, $sponsor-platinum-color 30px, white 0) bottom right, - linear-gradient(45deg, $sponsor-platinum-color 30px, white 0) bottom left; - background-size: 51% 51%; - background-repeat: no-repeat; - } - - &.sponsor--gold { - @include sponsor-decoration($sponsor-gold-color); - } - - &.sponsor--silver { - @include sponsor-decoration($sponsor-silver-color); - max-height: 500px; - } - - &.sponsor--bronze { - @include sponsor-decoration($sponsor-bronze-color); - } - - // intro height - &.sponsor--partner &__intro { - height: 150px; - } - - &.sponsor--platinum &__intro { - height: 200px; - } - - &.sponsor--silver &__intro { - height: 200px; - } - - &.sponsor--bronze &__intro { - height: 250px; - } - - &.sponsor--special &__intro { - height: 235px; - } -} - -.sponsor.sponsor--gold, -.sponsor.sponsor--platinum, -.sponsor.sponsor--partner{ - @include clearfix(); - .sponsor { - &__logo-wrapper { - @include make-md-column(4); - } - - &__title, &__intro { - @include make-md-column(8); - } - } -} - - -@media (min-width: $screen-md-min) { - .sponsor.sponsor--gold, - .sponsor.sponsor--platinum, - .sponsor.sponsor--partner{ - .sponsor__logo-wrapper { - height: 200px; - } - - .sponsor__title { - text-align: left; - } - } -} - - diff --git a/src/static/images/bg_section-sponsorship.svg b/src/static/images/bg_section-sponsorship.svg deleted file mode 100644 index 72ed3e948..000000000 --- a/src/static/images/bg_section-sponsorship.svg +++ /dev/null @@ -1,31 +0,0 @@ - - \ No newline at end of file diff --git a/src/static/pycontw-2021/_includes/base/_variables.scss b/src/static/pycontw-2021/_includes/base/_variables.scss index d52a722a0..7f4dde440 100644 --- a/src/static/pycontw-2021/_includes/base/_variables.scss +++ b/src/static/pycontw-2021/_includes/base/_variables.scss @@ -34,15 +34,7 @@ $sprint-event-bg: #fff; $sprint-event__url-color: #3C3C3C; $sprint-event__info-color: #4A4A4A; -// sponsors -$sponsor-bg: $theme-color; -$sponsor-bronze-color: #c37141; -$sponsor-silver-color: #a1a1a1; -$sponsor-gold-color: #ffc525; -$sponsor-platinum-color: #eddcad; - // Buttons - $btn-primary-bg: $ultramarine-blue; $btn-primary-hover-bg: lighter($ultramarine-blue); diff --git a/src/static/pycontw-2021/styles/ccip-sponsors.scss b/src/static/pycontw-2021/styles/ccip-sponsors.scss deleted file mode 100644 index 5fa6a85e8..000000000 --- a/src/static/pycontw-2021/styles/ccip-sponsors.scss +++ /dev/null @@ -1,9 +0,0 @@ -@import "site"; - -@import "index-mixins"; -@import "index-hero"; -@import "index-partners"; - -body { - background-color: $brick; -} diff --git a/src/static/pycontw-2021/styles/index.scss b/src/static/pycontw-2021/styles/index.scss index f50a91036..f819d37b1 100644 --- a/src/static/pycontw-2021/styles/index.scss +++ b/src/static/pycontw-2021/styles/index.scss @@ -161,7 +161,6 @@ footer { @include big-button-icon(speaking); @include big-button-icon(volunteering); - @include big-button-icon(sponsor); } .index-introduction { diff --git a/src/static/pycontw-2021/styles/page.scss b/src/static/pycontw-2021/styles/page.scss index 0c57b6300..a32c74a15 100644 --- a/src/static/pycontw-2021/styles/page.scss +++ b/src/static/pycontw-2021/styles/page.scss @@ -331,7 +331,6 @@ main { @include big-button-icon(speaking); @include big-button-icon(venue); @include big-button-icon(registration); - @include big-button-icon(sponsor); @include big-button-icon(volunteering); @include big-button-icon(about); } @@ -362,7 +361,6 @@ main { @include big-button-icon(speaking); @include big-button-icon(venue); @include big-button-icon(registration); - @include big-button-icon(sponsor); @include big-button-icon(volunteering); @include big-button-icon(about); } @@ -409,7 +407,6 @@ ul.custom_ul { @import "pages/venue"; @import "pages/staff"; @import "pages/portal"; -@import "pages/sponsorship-prospectus"; @import "pages/live"; @import "pages/community-track"; @import "pages/job-listings"; diff --git a/src/static/pycontw-2021/styles/pages/_sponsorship-prospectus.scss b/src/static/pycontw-2021/styles/pages/_sponsorship-prospectus.scss deleted file mode 100644 index a56a5d60d..000000000 --- a/src/static/pycontw-2021/styles/pages/_sponsorship-prospectus.scss +++ /dev/null @@ -1,41 +0,0 @@ -// -// Basic Bootstrap table -// - -.table-sponsorship-prospectus { - width: 130%; - word-wrap: break-word; - position: relative; - border-spacing: 0; - border-collapse: collapse; - - th, td { - text-indent: 0; - text-align: left; - - line-height: 1.2; - padding-top: 10px; - vertical-align: top; - - border-top: 1px solid #999; - padding: 10px 5px; - } - - th { - font-weight: 500; - } - - tbody { - tr:first-child { - td, th { - border-top: 2px solid #999; - } - } - } - - thead { - th { - border-top: none; - } - } -} diff --git a/src/static/pycontw-2022/_includes/base/_variables.scss b/src/static/pycontw-2022/_includes/base/_variables.scss index e297dde3b..a5079519d 100644 --- a/src/static/pycontw-2022/_includes/base/_variables.scss +++ b/src/static/pycontw-2022/_includes/base/_variables.scss @@ -34,15 +34,7 @@ $sprint-event-bg: #fff; $sprint-event__url-color: #3C3C3C; $sprint-event__info-color: #4A4A4A; -// sponsors -$sponsor-bg: $theme-color; -$sponsor-bronze-color: #c37141; -$sponsor-silver-color: #a1a1a1; -$sponsor-gold-color: #ffc525; -$sponsor-platinum-color: #eddcad; - // Buttons - $btn-primary-bg: $ultramarine-blue; $btn-primary-hover-bg: lighter($ultramarine-blue); diff --git a/src/static/pycontw-2022/styles/ccip-sponsors.scss b/src/static/pycontw-2022/styles/ccip-sponsors.scss deleted file mode 100644 index 5fa6a85e8..000000000 --- a/src/static/pycontw-2022/styles/ccip-sponsors.scss +++ /dev/null @@ -1,9 +0,0 @@ -@import "site"; - -@import "index-mixins"; -@import "index-hero"; -@import "index-partners"; - -body { - background-color: $brick; -} diff --git a/src/static/pycontw-2022/styles/index.scss b/src/static/pycontw-2022/styles/index.scss index f50a91036..f819d37b1 100644 --- a/src/static/pycontw-2022/styles/index.scss +++ b/src/static/pycontw-2022/styles/index.scss @@ -161,7 +161,6 @@ footer { @include big-button-icon(speaking); @include big-button-icon(volunteering); - @include big-button-icon(sponsor); } .index-introduction { diff --git a/src/static/pycontw-2022/styles/page.scss b/src/static/pycontw-2022/styles/page.scss index 0c57b6300..a32c74a15 100644 --- a/src/static/pycontw-2022/styles/page.scss +++ b/src/static/pycontw-2022/styles/page.scss @@ -331,7 +331,6 @@ main { @include big-button-icon(speaking); @include big-button-icon(venue); @include big-button-icon(registration); - @include big-button-icon(sponsor); @include big-button-icon(volunteering); @include big-button-icon(about); } @@ -362,7 +361,6 @@ main { @include big-button-icon(speaking); @include big-button-icon(venue); @include big-button-icon(registration); - @include big-button-icon(sponsor); @include big-button-icon(volunteering); @include big-button-icon(about); } @@ -409,7 +407,6 @@ ul.custom_ul { @import "pages/venue"; @import "pages/staff"; @import "pages/portal"; -@import "pages/sponsorship-prospectus"; @import "pages/live"; @import "pages/community-track"; @import "pages/job-listings"; diff --git a/src/static/pycontw-2022/styles/pages/_sponsorship-prospectus.scss b/src/static/pycontw-2022/styles/pages/_sponsorship-prospectus.scss deleted file mode 100644 index a56a5d60d..000000000 --- a/src/static/pycontw-2022/styles/pages/_sponsorship-prospectus.scss +++ /dev/null @@ -1,41 +0,0 @@ -// -// Basic Bootstrap table -// - -.table-sponsorship-prospectus { - width: 130%; - word-wrap: break-word; - position: relative; - border-spacing: 0; - border-collapse: collapse; - - th, td { - text-indent: 0; - text-align: left; - - line-height: 1.2; - padding-top: 10px; - vertical-align: top; - - border-top: 1px solid #999; - padding: 10px 5px; - } - - th { - font-weight: 500; - } - - tbody { - tr:first-child { - td, th { - border-top: 2px solid #999; - } - } - } - - thead { - th { - border-top: none; - } - } -} diff --git a/src/static/pycontw-2023/_includes/base/_variables.scss b/src/static/pycontw-2023/_includes/base/_variables.scss index be9d2ed16..eb3e9db63 100644 --- a/src/static/pycontw-2023/_includes/base/_variables.scss +++ b/src/static/pycontw-2023/_includes/base/_variables.scss @@ -34,15 +34,7 @@ $sprint-event-bg: #fff; $sprint-event__url-color: #3C3C3C; $sprint-event__info-color: #4A4A4A; -// sponsors -$sponsor-bg: $theme-color; -$sponsor-bronze-color: #c37141; -$sponsor-silver-color: #a1a1a1; -$sponsor-gold-color: #ffc525; -$sponsor-platinum-color: #eddcad; - // Buttons - $btn-primary-bg: $ultramarine-blue; $btn-primary-hover-bg: lighter($ultramarine-blue); diff --git a/src/static/pycontw-2023/styles/ccip-sponsors.scss b/src/static/pycontw-2023/styles/ccip-sponsors.scss deleted file mode 100644 index 5fa6a85e8..000000000 --- a/src/static/pycontw-2023/styles/ccip-sponsors.scss +++ /dev/null @@ -1,9 +0,0 @@ -@import "site"; - -@import "index-mixins"; -@import "index-hero"; -@import "index-partners"; - -body { - background-color: $brick; -} diff --git a/src/static/pycontw-2023/styles/index.scss b/src/static/pycontw-2023/styles/index.scss index f50a91036..f819d37b1 100644 --- a/src/static/pycontw-2023/styles/index.scss +++ b/src/static/pycontw-2023/styles/index.scss @@ -161,7 +161,6 @@ footer { @include big-button-icon(speaking); @include big-button-icon(volunteering); - @include big-button-icon(sponsor); } .index-introduction { diff --git a/src/static/pycontw-2023/styles/page.scss b/src/static/pycontw-2023/styles/page.scss index 3261152c0..2af9063dc 100644 --- a/src/static/pycontw-2023/styles/page.scss +++ b/src/static/pycontw-2023/styles/page.scss @@ -331,7 +331,6 @@ main { @include big-button-icon(speaking); @include big-button-icon(venue); @include big-button-icon(registration); - @include big-button-icon(sponsor); @include big-button-icon(volunteering); @include big-button-icon(about); } @@ -362,7 +361,6 @@ main { @include big-button-icon(speaking); @include big-button-icon(venue); @include big-button-icon(registration); - @include big-button-icon(sponsor); @include big-button-icon(volunteering); @include big-button-icon(about); } @@ -409,7 +407,6 @@ ul.custom_ul { @import "pages/venue"; @import "pages/staff"; @import "pages/portal"; -@import "pages/sponsorship-prospectus"; @import "pages/live"; @import "pages/job-listings"; @import "pages/discord"; diff --git a/src/static/pycontw-2023/styles/pages/_sponsorship-prospectus.scss b/src/static/pycontw-2023/styles/pages/_sponsorship-prospectus.scss deleted file mode 100644 index a56a5d60d..000000000 --- a/src/static/pycontw-2023/styles/pages/_sponsorship-prospectus.scss +++ /dev/null @@ -1,41 +0,0 @@ -// -// Basic Bootstrap table -// - -.table-sponsorship-prospectus { - width: 130%; - word-wrap: break-word; - position: relative; - border-spacing: 0; - border-collapse: collapse; - - th, td { - text-indent: 0; - text-align: left; - - line-height: 1.2; - padding-top: 10px; - vertical-align: top; - - border-top: 1px solid #999; - padding: 10px 5px; - } - - th { - font-weight: 500; - } - - tbody { - tr:first-child { - td, th { - border-top: 2px solid #999; - } - } - } - - thead { - th { - border-top: none; - } - } -} diff --git a/src/static/pycontw-2024/_includes/base/_variables.scss b/src/static/pycontw-2024/_includes/base/_variables.scss index e899cb95d..b39cfa669 100644 --- a/src/static/pycontw-2024/_includes/base/_variables.scss +++ b/src/static/pycontw-2024/_includes/base/_variables.scss @@ -34,15 +34,7 @@ $sprint-event-bg: #fff; $sprint-event__url-color: #3C3C3C; $sprint-event__info-color: #4A4A4A; -// sponsors -$sponsor-bg: $theme-color; -$sponsor-bronze-color: #c37141; -$sponsor-silver-color: #a1a1a1; -$sponsor-gold-color: #ffc525; -$sponsor-platinum-color: #eddcad; - // Buttons - $btn-primary-bg: $ultramarine-blue; $btn-primary-hover-bg: lighter($ultramarine-blue); diff --git a/src/static/pycontw-2024/styles/ccip-sponsors.scss b/src/static/pycontw-2024/styles/ccip-sponsors.scss deleted file mode 100644 index 5fa6a85e8..000000000 --- a/src/static/pycontw-2024/styles/ccip-sponsors.scss +++ /dev/null @@ -1,9 +0,0 @@ -@import "site"; - -@import "index-mixins"; -@import "index-hero"; -@import "index-partners"; - -body { - background-color: $brick; -} diff --git a/src/static/pycontw-2024/styles/index.scss b/src/static/pycontw-2024/styles/index.scss index f50a91036..f819d37b1 100644 --- a/src/static/pycontw-2024/styles/index.scss +++ b/src/static/pycontw-2024/styles/index.scss @@ -161,7 +161,6 @@ footer { @include big-button-icon(speaking); @include big-button-icon(volunteering); - @include big-button-icon(sponsor); } .index-introduction { diff --git a/src/static/pycontw-2024/styles/page.scss b/src/static/pycontw-2024/styles/page.scss index 3261152c0..2af9063dc 100644 --- a/src/static/pycontw-2024/styles/page.scss +++ b/src/static/pycontw-2024/styles/page.scss @@ -331,7 +331,6 @@ main { @include big-button-icon(speaking); @include big-button-icon(venue); @include big-button-icon(registration); - @include big-button-icon(sponsor); @include big-button-icon(volunteering); @include big-button-icon(about); } @@ -362,7 +361,6 @@ main { @include big-button-icon(speaking); @include big-button-icon(venue); @include big-button-icon(registration); - @include big-button-icon(sponsor); @include big-button-icon(volunteering); @include big-button-icon(about); } @@ -409,7 +407,6 @@ ul.custom_ul { @import "pages/venue"; @import "pages/staff"; @import "pages/portal"; -@import "pages/sponsorship-prospectus"; @import "pages/live"; @import "pages/job-listings"; @import "pages/discord"; diff --git a/src/static/pycontw-2024/styles/pages/_sponsorship-prospectus.scss b/src/static/pycontw-2024/styles/pages/_sponsorship-prospectus.scss deleted file mode 100644 index a56a5d60d..000000000 --- a/src/static/pycontw-2024/styles/pages/_sponsorship-prospectus.scss +++ /dev/null @@ -1,41 +0,0 @@ -// -// Basic Bootstrap table -// - -.table-sponsorship-prospectus { - width: 130%; - word-wrap: break-word; - position: relative; - border-spacing: 0; - border-collapse: collapse; - - th, td { - text-indent: 0; - text-align: left; - - line-height: 1.2; - padding-top: 10px; - vertical-align: top; - - border-top: 1px solid #999; - padding: 10px 5px; - } - - th { - font-weight: 500; - } - - tbody { - tr:first-child { - td, th { - border-top: 2px solid #999; - } - } - } - - thead { - th { - border-top: none; - } - } -} diff --git a/src/templates/pycontw-2021/_includes/menu.html b/src/templates/pycontw-2021/_includes/menu.html index ab336e69a..cb7d39182 100644 --- a/src/templates/pycontw-2021/_includes/menu.html +++ b/src/templates/pycontw-2021/_includes/menu.html @@ -6,8 +6,6 @@ {% url 'page' path='about/community' as about_community_url %} {% url 'page' path='about/staff' as about_staff_url %} -{% url 'page' path='sponsor/sponsor' as sponsor_url %} - {% url 'page' path='speaking/cfp' as speaking_cfp_url %} {% url 'page' path='speaking/talk' as speaking_talk_url %} {% url 'page' path='speaking/tutorial' as speaking_tutorial_url %} @@ -42,11 +40,6 @@ -
- - Contact: - - sponsorship@pycon.tw - to Sponsorship Team of PyCon Taiwan 2020 - -
-
- PyCon Taiwan 2020 Chair, Chun-Yu Tseng
-
- PyCon Taiwan 2020 Program Chair, Wei Lee
-
- PyCon Taiwan 2020 Sponsorship Director, You-Hao Chang
-
-
- PyCon Taiwan is the largest annual gathering for the community using and developing the open-source Python programming language in Taiwan.
- "PyCon Taiwan" is a trademark authorized according to "PSF PyCon Trademark Usage Policy", and is organized by the Taiwan Python community and Open Culture Foundation (OCF, GUI 38552170) for growing the local community.
-
- PyCon Taiwan continues to connect with new community members locally, nationally, and globally.
- Your sponsorship keeps PyCon Taiwan affordable and accessible to the widest potential audience. Having your support, we are able to provide financial aid to needed attendences.
-
- We have several sponsor packages including but not limited to the list below:
-
- We are eager to hear from you! Only you know your business and what your are looking for the best. We do provide cutomized sponsor packages and are more than willing to take your suggestions into build suitable packages. -
--Estimated attendance: 400+ (The first PyCon Taiwan in southern Taiwan!) -
--Quick stats from 2019: -
-Conference Schedule (Taiwan timezone (UTC+8) if not specified) -
Sponsor Packages
-- | Diamond | -Platinum | -Golden | -Silver | -Bronze | -
---|---|---|---|---|---|
Speaker Banquets / Person | -200 | -200 | -200 | -200 | -200 | -
Luxury Booth (Limit: 2) | -Included | -Included | -Included | -1,300 | -- | -
Talks (30 Mins.) (Limit: 1 Per Community Track) |
- Included | -Included | -500 | -- | -- | -
Social Media / Post | -200 | -300 | -300 | -500 | -600 | -
Advertisement (APP and Website) |
- Included | -Included | -Included | -1,700 | -1,700 | -
Ticket Discount | -10 % off 10% off at any quantity |
- 10 % off If more than 10 tickets |
- 10 % off If more than 20 tickets |
- 10 % off If more than 30 tickets |
- 10 % off If more than 40 tickets |
-
PyCon Taiwan is driven both by our hardcore community members and, YOU, our awesome sponsor partners!
- -Your generous support is the engine for us to move forward. Ever since PyCon Taiwan was first held in 2012, the conference has expend its visibility, accessibility, and varieties with a goal to continuously provide a platform for developers, new contributors, organizations, and companies to share knowledge and ideas and to strengthen Python communities in Taiwan.
- -PyCon Taiwan calls for your sponsorship in order to create more possibilities for all this to happen. Our sponsorship packages make sure your benefits:
- -Visibility on Python Community
Recruit in the conference
Promote your brand
Connect with strong talent network
Our sponsorship partners are what makes PyCon Taiwan possible! We work closely with our partners in order to optimize what PyCon Taiwan can offer. Look for your participation!
- -See our full prospectus for Sponsorship Package
-Talk us about sponsorship
- -{% endblock content %} - diff --git a/src/templates/pycontw-2021/contents/zh/sponsor/prospectus.html b/src/templates/pycontw-2021/contents/zh/sponsor/prospectus.html deleted file mode 100644 index 15e0e50ba..000000000 --- a/src/templates/pycontw-2021/contents/zh/sponsor/prospectus.html +++ /dev/null @@ -1,336 +0,0 @@ -{% extends 'contents/_base.html' %} - -{% load i18n %} - -{% block title %}Sponsor{% endblock title %} -{% block body_class %}scroll-x{% endblock %} -{% block content %} - -{% url 'page' path='sponsor/community-tracks' as community_track_url %} - -- - 聯絡方式:電子信箱 - - sponsorship@pycon.tw - 致「台灣 Python 年會贊助組」收 - -
-
- 台灣 Python 年會 2020 大會主席 曾君宇
-
- 台灣 Python 年會 2020 議程主席 李唯
-
- 台灣 Python 年會 2020 贊助總監 張祐豪
-
-
- 台灣 Python 年會,是每年在台灣舉辦、並且聚集了最多的在地的使用、開發 Python 的社群技術研討會。
- 台灣 Python 年會是在 Python Software Foundation 授權下,由 Python 社群與財團法人開放文化基金會(統一編號 38552170)合作,自發性地為了 Python 社群自身所舉辦的年度技術研討會。
-
- 台灣 Python 年會歷年來持續促進台灣的 Python 社群彼此之間,與台灣與國際上的 Python 社群彼此之間,有更多、更好、更緊密的交流,以期促進 Python 語言的成長與茁壯。
- 您的贊助會使得台灣 Python 年會能夠持續運作,並且盡可能觸及更多的會眾前往交流。我們不只舉辦年會,也透過財務補助的方式,鼓勵更多人前往參與台灣 Python 年會。
-
- 我們期待您的來訊洽詢,請隨時透過上方的聯繫方式與我們聯繫、洽談最適合您的贊助方式,以達到您想要在 Python 社群曝光、徵才或是單純回饋 Python 社群的初衷與期待。
-
-本次年會估計出席人數: 400+ (首次於濁水溪以南舉辦年會) -
--2019 快速綜覽: -
-大會重要時間點 -
各級贊助方案
-- | 鑽石級 | -白金級 | -金級 | -銀級 | -銅級 | -
---|---|---|---|---|---|
講者晚宴 (每人) | -6000 | -6000 | -6000 | -6000 | -6000 | -
主場地攤位 (上限:2) | -已包含 | -已包含 | -已包含 | -40000 | -無 | -
社群軌技術演講 | -已包含 | -已包含 | -15000 | -無 | -無 | -
社群媒體宣傳 (每篇) | -6000 | -9000 | -9000 | -15000 | -18000 | -
網站/APP 廣告宣傳 | -已包含 | -已包含 | -已包含 | -50000 | -50000 | -
門票優惠 | -任意數量九折 | -滿 10 張九折 | -滿 20 張九折 | -滿 30 張九折 | -滿 40 張九折 | -
「您」的支持是推進 PyCon Taiwan 的強大動力!
-PyCon Taiwan 在此召集「您」的加入,透過贊助以具體行動支持 python 社群的成長!
-透過參與 PyCon Taiwan ,我們也提供贊助廠商以下的服務:
- -近距離接觸專業人士
標地明確與順暢的徵才場合
提升品牌曝光率
為企業建立人才網絡
歡迎參考 2020 PyCon Taiwan 贊助書,以了解 2020 PyCon Taiwan 贊助方案,或是聯絡我們,讓我們了解貴單位的需求!
- -{% endblock content %} diff --git a/src/templates/pycontw-2021/index.html b/src/templates/pycontw-2021/index.html index 52cf3dfde..40479d85e 100644 --- a/src/templates/pycontw-2021/index.html +++ b/src/templates/pycontw-2021/index.html @@ -54,27 +54,7 @@- - Contact: - - sponsorship@pycon.tw - to Sponsorship Team of PyCon Taiwan 2020 - -
-
- PyCon Taiwan 2020 Chair, Chun-Yu Tseng
-
- PyCon Taiwan 2020 Program Chair, Wei Lee
-
- PyCon Taiwan 2020 Sponsorship Director, You-Hao Chang
-
-
- PyCon Taiwan is the largest annual gathering for the community using and developing the open-source Python programming language in Taiwan.
- "PyCon Taiwan" is a trademark authorized according to "PSF PyCon Trademark Usage Policy", and is organized by the Taiwan Python community and Open Culture Foundation (OCF, GUI 38552170) for growing the local community.
-
- PyCon Taiwan continues to connect with new community members locally, nationally, and globally.
- Your sponsorship keeps PyCon Taiwan affordable and accessible to the widest potential audience. Having your support, we are able to provide financial aid to needed attendences.
-
- We have several sponsor packages including but not limited to the list below:
-
- We are eager to hear from you! Only you know your business and what your are looking for the best. We do provide cutomized sponsor packages and are more than willing to take your suggestions into build suitable packages. -
--Estimated attendance: 400+ (The first PyCon Taiwan in southern Taiwan!) -
--Quick stats from 2019: -
-Conference Schedule (Taiwan timezone (UTC+8) if not specified) -
Sponsor Packages
-- | Diamond | -Platinum | -Golden | -Silver | -Bronze | -
---|---|---|---|---|---|
Speaker Banquets / Person | -200 | -200 | -200 | -200 | -200 | -
Luxury Booth (Limit: 2) | -Included | -Included | -Included | -1,300 | -- | -
Talks (30 Mins.) (Limit: 1 Per Community Track) |
- Included | -Included | -500 | -- | -- | -
Social Media / Post | -200 | -300 | -300 | -500 | -600 | -
Advertisement (APP and Website) |
- Included | -Included | -Included | -1,700 | -1,700 | -
Ticket Discount | -10 % off 10% off at any quantity |
- 10 % off If more than 10 tickets |
- 10 % off If more than 20 tickets |
- 10 % off If more than 30 tickets |
- 10 % off If more than 40 tickets |
-
PyCon Taiwan is driven both by our hardcore community members and, YOU, our awesome sponsor partners!
- -Your generous support is the engine for us to move forward. Ever since PyCon Taiwan was first held in 2012, the conference has expend its visibility, accessibility, and varieties with a goal to continuously provide a platform for developers, new contributors, organizations, and companies to share knowledge and ideas and to strengthen Python communities in Taiwan.
- -PyCon Taiwan calls for your sponsorship in order to create more possibilities for all this to happen. Our sponsorship packages make sure your benefits:
- -Visibility on Python Community
Recruit in the conference
Promote your brand
Connect with strong talent network
Our sponsorship partners are what makes PyCon Taiwan possible! We work closely with our partners in order to optimize what PyCon Taiwan can offer. Look for your participation!
- -See our full prospectus for Sponsorship Package
-Talk us about sponsorship
- -{% endblock content %} - diff --git a/src/templates/pycontw-2022/contents/zh/sponsor/prospectus.html b/src/templates/pycontw-2022/contents/zh/sponsor/prospectus.html deleted file mode 100644 index 15e0e50ba..000000000 --- a/src/templates/pycontw-2022/contents/zh/sponsor/prospectus.html +++ /dev/null @@ -1,336 +0,0 @@ -{% extends 'contents/_base.html' %} - -{% load i18n %} - -{% block title %}Sponsor{% endblock title %} -{% block body_class %}scroll-x{% endblock %} -{% block content %} - -{% url 'page' path='sponsor/community-tracks' as community_track_url %} - -- - 聯絡方式:電子信箱 - - sponsorship@pycon.tw - 致「台灣 Python 年會贊助組」收 - -
-
- 台灣 Python 年會 2020 大會主席 曾君宇
-
- 台灣 Python 年會 2020 議程主席 李唯
-
- 台灣 Python 年會 2020 贊助總監 張祐豪
-
-
- 台灣 Python 年會,是每年在台灣舉辦、並且聚集了最多的在地的使用、開發 Python 的社群技術研討會。
- 台灣 Python 年會是在 Python Software Foundation 授權下,由 Python 社群與財團法人開放文化基金會(統一編號 38552170)合作,自發性地為了 Python 社群自身所舉辦的年度技術研討會。
-
- 台灣 Python 年會歷年來持續促進台灣的 Python 社群彼此之間,與台灣與國際上的 Python 社群彼此之間,有更多、更好、更緊密的交流,以期促進 Python 語言的成長與茁壯。
- 您的贊助會使得台灣 Python 年會能夠持續運作,並且盡可能觸及更多的會眾前往交流。我們不只舉辦年會,也透過財務補助的方式,鼓勵更多人前往參與台灣 Python 年會。
-
- 我們期待您的來訊洽詢,請隨時透過上方的聯繫方式與我們聯繫、洽談最適合您的贊助方式,以達到您想要在 Python 社群曝光、徵才或是單純回饋 Python 社群的初衷與期待。
-
-本次年會估計出席人數: 400+ (首次於濁水溪以南舉辦年會) -
--2019 快速綜覽: -
-大會重要時間點 -
各級贊助方案
-- | 鑽石級 | -白金級 | -金級 | -銀級 | -銅級 | -
---|---|---|---|---|---|
講者晚宴 (每人) | -6000 | -6000 | -6000 | -6000 | -6000 | -
主場地攤位 (上限:2) | -已包含 | -已包含 | -已包含 | -40000 | -無 | -
社群軌技術演講 | -已包含 | -已包含 | -15000 | -無 | -無 | -
社群媒體宣傳 (每篇) | -6000 | -9000 | -9000 | -15000 | -18000 | -
網站/APP 廣告宣傳 | -已包含 | -已包含 | -已包含 | -50000 | -50000 | -
門票優惠 | -任意數量九折 | -滿 10 張九折 | -滿 20 張九折 | -滿 30 張九折 | -滿 40 張九折 | -
「您」的支持是推進 PyCon Taiwan 的強大動力!
-PyCon Taiwan 在此召集「您」的加入,透過贊助以具體行動支持 python 社群的成長!
-透過參與 PyCon Taiwan ,我們也提供贊助廠商以下的服務:
- -近距離接觸專業人士
標地明確與順暢的徵才場合
提升品牌曝光率
為企業建立人才網絡
歡迎參考 2020 PyCon Taiwan 贊助書,以了解 2020 PyCon Taiwan 贊助方案,或是聯絡我們,讓我們了解貴單位的需求!
- -{% endblock content %} diff --git a/src/templates/pycontw-2022/index.html b/src/templates/pycontw-2022/index.html index 52cf3dfde..40479d85e 100644 --- a/src/templates/pycontw-2022/index.html +++ b/src/templates/pycontw-2022/index.html @@ -54,27 +54,7 @@- - Contact: - - sponsorship@pycon.tw - to Sponsorship Team of PyCon Taiwan 2020 - -
-
- PyCon Taiwan 2020 Chair, Chun-Yu Tseng
-
- PyCon Taiwan 2020 Program Chair, Wei Lee
-
- PyCon Taiwan 2020 Sponsorship Director, You-Hao Chang
-
-
- PyCon Taiwan is the largest annual gathering for the community using and developing the open-source Python programming language in Taiwan.
- "PyCon Taiwan" is a trademark authorized according to "PSF PyCon Trademark Usage Policy", and is organized by the Taiwan Python community and Open Culture Foundation (OCF, GUI 38552170) for growing the local community.
-
- PyCon Taiwan continues to connect with new community members locally, nationally, and globally.
- Your sponsorship keeps PyCon Taiwan affordable and accessible to the widest potential audience. Having your support, we are able to provide financial aid to needed attendences.
-
- We have several sponsor packages including but not limited to the list below:
-
- We are eager to hear from you! Only you know your business and what your are looking for the best. We do provide cutomized sponsor packages and are more than willing to take your suggestions into build suitable packages. -
--Estimated attendance: 400+ (The first PyCon Taiwan in southern Taiwan!) -
--Quick stats from 2019: -
-Conference Schedule (Taiwan timezone (UTC+8) if not specified) -
Sponsor Packages
-- | Diamond | -Platinum | -Golden | -Silver | -Bronze | -
---|---|---|---|---|---|
Speaker Banquets / Person | -200 | -200 | -200 | -200 | -200 | -
Luxury Booth (Limit: 2) | -Included | -Included | -Included | -1,300 | -- | -
Talks (30 Mins.) (Limit: 1 Per Community Track) |
- Included | -Included | -500 | -- | -- | -
Social Media / Post | -200 | -300 | -300 | -500 | -600 | -
Advertisement (APP and Website) |
- Included | -Included | -Included | -1,700 | -1,700 | -
Ticket Discount | -10 % off 10% off at any quantity |
- 10 % off If more than 10 tickets |
- 10 % off If more than 20 tickets |
- 10 % off If more than 30 tickets |
- 10 % off If more than 40 tickets |
-
PyCon Taiwan is driven both by our hardcore community members and, YOU, our awesome sponsor partners!
- -Your generous support is the engine for us to move forward. Ever since PyCon Taiwan was first held in 2012, the conference has expend its visibility, accessibility, and varieties with a goal to continuously provide a platform for developers, new contributors, organizations, and companies to share knowledge and ideas and to strengthen Python communities in Taiwan.
- -PyCon Taiwan calls for your sponsorship in order to create more possibilities for all this to happen. Our sponsorship packages make sure your benefits:
- -Visibility on Python Community
Recruit in the conference
Promote your brand
Connect with strong talent network
Our sponsorship partners are what makes PyCon Taiwan possible! We work closely with our partners in order to optimize what PyCon Taiwan can offer. Look for your participation!
- -See our full prospectus for Sponsorship Package
-Talk us about sponsorship
- -{% endblock content %} - diff --git a/src/templates/pycontw-2023/contents/zh/sponsor/prospectus.html b/src/templates/pycontw-2023/contents/zh/sponsor/prospectus.html deleted file mode 100644 index 15e0e50ba..000000000 --- a/src/templates/pycontw-2023/contents/zh/sponsor/prospectus.html +++ /dev/null @@ -1,336 +0,0 @@ -{% extends 'contents/_base.html' %} - -{% load i18n %} - -{% block title %}Sponsor{% endblock title %} -{% block body_class %}scroll-x{% endblock %} -{% block content %} - -{% url 'page' path='sponsor/community-tracks' as community_track_url %} - -- - 聯絡方式:電子信箱 - - sponsorship@pycon.tw - 致「台灣 Python 年會贊助組」收 - -
-
- 台灣 Python 年會 2020 大會主席 曾君宇
-
- 台灣 Python 年會 2020 議程主席 李唯
-
- 台灣 Python 年會 2020 贊助總監 張祐豪
-
-
- 台灣 Python 年會,是每年在台灣舉辦、並且聚集了最多的在地的使用、開發 Python 的社群技術研討會。
- 台灣 Python 年會是在 Python Software Foundation 授權下,由 Python 社群與財團法人開放文化基金會(統一編號 38552170)合作,自發性地為了 Python 社群自身所舉辦的年度技術研討會。
-
- 台灣 Python 年會歷年來持續促進台灣的 Python 社群彼此之間,與台灣與國際上的 Python 社群彼此之間,有更多、更好、更緊密的交流,以期促進 Python 語言的成長與茁壯。
- 您的贊助會使得台灣 Python 年會能夠持續運作,並且盡可能觸及更多的會眾前往交流。我們不只舉辦年會,也透過財務補助的方式,鼓勵更多人前往參與台灣 Python 年會。
-
- 我們期待您的來訊洽詢,請隨時透過上方的聯繫方式與我們聯繫、洽談最適合您的贊助方式,以達到您想要在 Python 社群曝光、徵才或是單純回饋 Python 社群的初衷與期待。
-
-本次年會估計出席人數: 400+ (首次於濁水溪以南舉辦年會) -
--2019 快速綜覽: -
-大會重要時間點 -
各級贊助方案
-- | 鑽石級 | -白金級 | -金級 | -銀級 | -銅級 | -
---|---|---|---|---|---|
講者晚宴 (每人) | -6000 | -6000 | -6000 | -6000 | -6000 | -
主場地攤位 (上限:2) | -已包含 | -已包含 | -已包含 | -40000 | -無 | -
社群軌技術演講 | -已包含 | -已包含 | -15000 | -無 | -無 | -
社群媒體宣傳 (每篇) | -6000 | -9000 | -9000 | -15000 | -18000 | -
網站/APP 廣告宣傳 | -已包含 | -已包含 | -已包含 | -50000 | -50000 | -
門票優惠 | -任意數量九折 | -滿 10 張九折 | -滿 20 張九折 | -滿 30 張九折 | -滿 40 張九折 | -
「您」的支持是推進 PyCon Taiwan 的強大動力!
-PyCon Taiwan 在此召集「您」的加入,透過贊助以具體行動支持 python 社群的成長!
-透過參與 PyCon Taiwan ,我們也提供贊助廠商以下的服務:
- -近距離接觸專業人士
標地明確與順暢的徵才場合
提升品牌曝光率
為企業建立人才網絡
歡迎參考 2020 PyCon Taiwan 贊助書,以了解 2020 PyCon Taiwan 贊助方案,或是聯絡我們,讓我們了解貴單位的需求!
- -{% endblock content %} diff --git a/src/templates/pycontw-2023/index.html b/src/templates/pycontw-2023/index.html index f8bc05283..de85a0b9e 100644 --- a/src/templates/pycontw-2023/index.html +++ b/src/templates/pycontw-2023/index.html @@ -54,27 +54,7 @@- - Contact: - - sponsorship@pycon.tw - to Sponsorship Team of PyCon Taiwan 2020 - -
-
- PyCon Taiwan 2020 Chair, Chun-Yu Tseng
-
- PyCon Taiwan 2020 Program Chair, Wei Lee
-
- PyCon Taiwan 2020 Sponsorship Director, You-Hao Chang
-
-
- PyCon Taiwan is the largest annual gathering for the community using and developing the open-source Python programming language in Taiwan.
- "PyCon Taiwan" is a trademark authorized according to "PSF PyCon Trademark Usage Policy", and is organized by the Taiwan Python community and Open Culture Foundation (OCF, GUI 38552170) for growing the local community.
-
- PyCon Taiwan continues to connect with new community members locally, nationally, and globally.
- Your sponsorship keeps PyCon Taiwan affordable and accessible to the widest potential audience. Having your support, we are able to provide financial aid to needed attendences.
-
- We have several sponsor packages including but not limited to the list below:
-
- We are eager to hear from you! Only you know your business and what your are looking for the best. We do provide cutomized sponsor packages and are more than willing to take your suggestions into build suitable packages. -
--Estimated attendance: 400+ (The first PyCon Taiwan in southern Taiwan!) -
--Quick stats from 2019: -
-Conference Schedule (Taiwan timezone (UTC+8) if not specified) -
Sponsor Packages
-- | Diamond | -Platinum | -Golden | -Silver | -Bronze | -
---|---|---|---|---|---|
Speaker Banquets / Person | -200 | -200 | -200 | -200 | -200 | -
Luxury Booth (Limit: 2) | -Included | -Included | -Included | -1,300 | -- | -
Talks (30 Mins.) (Limit: 1 Per Community Track) |
- Included | -Included | -500 | -- | -- | -
Social Media / Post | -200 | -300 | -300 | -500 | -600 | -
Advertisement (APP and Website) |
- Included | -Included | -Included | -1,700 | -1,700 | -
Ticket Discount | -10 % off 10% off at any quantity |
- 10 % off If more than 10 tickets |
- 10 % off If more than 20 tickets |
- 10 % off If more than 30 tickets |
- 10 % off If more than 40 tickets |
-
PyCon Taiwan is driven both by our hardcore community members and, YOU, our awesome sponsor partners!
- -Your generous support is the engine for us to move forward. Ever since PyCon Taiwan was first held in 2012, the conference has expend its visibility, accessibility, and varieties with a goal to continuously provide a platform for developers, new contributors, organizations, and companies to share knowledge and ideas and to strengthen Python communities in Taiwan.
- -PyCon Taiwan calls for your sponsorship in order to create more possibilities for all this to happen. Our sponsorship packages make sure your benefits:
- -Visibility on Python Community
Recruit in the conference
Promote your brand
Connect with strong talent network
Our sponsorship partners are what makes PyCon Taiwan possible! We work closely with our partners in order to optimize what PyCon Taiwan can offer. Look for your participation!
- -See our full prospectus for Sponsorship Package
-Talk us about sponsorship
- -{% endblock content %} - diff --git a/src/templates/pycontw-2024/contents/zh/sponsor/prospectus.html b/src/templates/pycontw-2024/contents/zh/sponsor/prospectus.html deleted file mode 100644 index 15e0e50ba..000000000 --- a/src/templates/pycontw-2024/contents/zh/sponsor/prospectus.html +++ /dev/null @@ -1,336 +0,0 @@ -{% extends 'contents/_base.html' %} - -{% load i18n %} - -{% block title %}Sponsor{% endblock title %} -{% block body_class %}scroll-x{% endblock %} -{% block content %} - -{% url 'page' path='sponsor/community-tracks' as community_track_url %} - -- - 聯絡方式:電子信箱 - - sponsorship@pycon.tw - 致「台灣 Python 年會贊助組」收 - -
-
- 台灣 Python 年會 2020 大會主席 曾君宇
-
- 台灣 Python 年會 2020 議程主席 李唯
-
- 台灣 Python 年會 2020 贊助總監 張祐豪
-
-
- 台灣 Python 年會,是每年在台灣舉辦、並且聚集了最多的在地的使用、開發 Python 的社群技術研討會。
- 台灣 Python 年會是在 Python Software Foundation 授權下,由 Python 社群與財團法人開放文化基金會(統一編號 38552170)合作,自發性地為了 Python 社群自身所舉辦的年度技術研討會。
-
- 台灣 Python 年會歷年來持續促進台灣的 Python 社群彼此之間,與台灣與國際上的 Python 社群彼此之間,有更多、更好、更緊密的交流,以期促進 Python 語言的成長與茁壯。
- 您的贊助會使得台灣 Python 年會能夠持續運作,並且盡可能觸及更多的會眾前往交流。我們不只舉辦年會,也透過財務補助的方式,鼓勵更多人前往參與台灣 Python 年會。
-
- 我們期待您的來訊洽詢,請隨時透過上方的聯繫方式與我們聯繫、洽談最適合您的贊助方式,以達到您想要在 Python 社群曝光、徵才或是單純回饋 Python 社群的初衷與期待。
-
-本次年會估計出席人數: 400+ (首次於濁水溪以南舉辦年會) -
--2019 快速綜覽: -
-大會重要時間點 -
各級贊助方案
-- | 鑽石級 | -白金級 | -金級 | -銀級 | -銅級 | -
---|---|---|---|---|---|
講者晚宴 (每人) | -6000 | -6000 | -6000 | -6000 | -6000 | -
主場地攤位 (上限:2) | -已包含 | -已包含 | -已包含 | -40000 | -無 | -
社群軌技術演講 | -已包含 | -已包含 | -15000 | -無 | -無 | -
社群媒體宣傳 (每篇) | -6000 | -9000 | -9000 | -15000 | -18000 | -
網站/APP 廣告宣傳 | -已包含 | -已包含 | -已包含 | -50000 | -50000 | -
門票優惠 | -任意數量九折 | -滿 10 張九折 | -滿 20 張九折 | -滿 30 張九折 | -滿 40 張九折 | -
「您」的支持是推進 PyCon Taiwan 的強大動力!
-PyCon Taiwan 在此召集「您」的加入,透過贊助以具體行動支持 python 社群的成長!
-透過參與 PyCon Taiwan ,我們也提供贊助廠商以下的服務:
- -近距離接觸專業人士
標地明確與順暢的徵才場合
提升品牌曝光率
為企業建立人才網絡
歡迎參考 2020 PyCon Taiwan 贊助書,以了解 2020 PyCon Taiwan 贊助方案,或是聯絡我們,讓我們了解貴單位的需求!
- -{% endblock content %} diff --git a/src/templates/pycontw-2024/index.html b/src/templates/pycontw-2024/index.html index f8bc05283..de85a0b9e 100644 --- a/src/templates/pycontw-2024/index.html +++ b/src/templates/pycontw-2024/index.html @@ -54,27 +54,7 @@