Merge branch 'prod'

This commit is contained in:
Christopher Neugebauer 2017-11-29 20:21:06 -08:00
commit 32b20ed059
10 changed files with 590 additions and 160 deletions

View file

@ -1 +1 @@
web: gunicorn pinaxcon.wsgi --log-file - web: gunicorn pinaxcon.wsgi --timeout 30 --log-file -

View file

@ -1,4 +1,5 @@
from django.conf import settings from django.conf import settings
from django.contrib.auth.models import User
from django.core.mail import EmailMultiAlternatives from django.core.mail import EmailMultiAlternatives
from functools import wraps from functools import wraps
@ -12,6 +13,7 @@ class MonkeyPatchMiddleware(object):
def do_monkey_patch(): def do_monkey_patch():
patch_stripe_card_defaults() patch_stripe_card_defaults()
patch_conference_schedule()
# Remove this function from existence # Remove this function from existence
global do_monkey_patch global do_monkey_patch
@ -24,9 +26,80 @@ def patch_stripe_card_defaults():
old_sync_card = sources.sync_card old_sync_card = sources.sync_card
@wraps(old_sync_card)
def sync_card(customer, source): def sync_card(customer, source):
d = defaultdict(str) d = defaultdict(str)
d.update(source) d.update(source)
return old_sync_card(customer, d) return old_sync_card(customer, d)
sources.sync_card = sync_card sources.sync_card = sync_card
def patch_conference_schedule():
from symposion.schedule import views as sv
from symposion.schedule import models as sm
old_schedule_json = sv._schedule_json
@wraps(old_schedule_json)
def schedule_json(request):
schedule = old_schedule_json(request)
for slot_data in schedule:
slot = sm.Slot.objects.get(id=slot_data["conf_key"])
presentation = slot.content
if presentation is not None:
update_presentation(request, slot_data, presentation)
elif slot.kind.label.lower() == "keynote":
update_keynote(request, slot_data)
elif slot.kind.label.lower() == "housekeeping":
update_housekeeping(request, slot_data)
else:
pass
return schedule
def update_presentation(request, slot_data, presentation):
try:
slot_data["reviewers"] = (
presentation.speaker.conferencespeaker.reviewer
if request.user.is_staff else ["redacted"]
)
slot_data["license"] = "CC BY-SA"
slot_data["released"] = presentation.proposal_base.talkproposal.recording_release
slot_data["twitter_id"] = presentation.speaker.conferencespeaker.twitter_username
except Exception as e:
print e
def update_keynote(request, slot_data):
keynotes = {
"Brandon Rhodes": (User.objects.get(username="brandon").email, "brandon_rhodes"),
"Carina C. Zona": (User.objects.get(username="cczona").email, "cczona"),
}
for speaker, values in keynotes.items():
print speaker
if speaker in slot_data["name"]:
author_name = speaker
author_email, author_twitter_id = values
slot_data["name"] = "Keynote"
slot_data["authors"] = [author_name]
slot_data["contact"] = [
author_email
] if request.user.is_staff else ["redacted"]
slot_data["abstract"] = "Keynote presentation from North Bay Python 2017 by " + author_name
slot_data["description"] = "Keynote presentation from North Bay Python 2017 by " + author_name
slot_data["conf_url"] = "https://2017.northbaypython.org"
slot_data["cancelled"] = False
slot_data["reviewers"] = ""
slot_data["license"] = "CC BY-SA"
slot_data["twitter_id"] = author_twitter_id
slot_data["released"] = True
def update_housekeeping(request, slot_data):
slot_data["contact"] = [
"spam@northbaypython.org"
] if request.user.is_staff else ["redacted"]
sv._schedule_json = schedule_json

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-11-16 00:37
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('proposals', '0005_auto_20170917_2031'),
]
operations = [
migrations.AddField(
model_name='conferencespeaker',
name='reviewer',
field=models.EmailField(blank=True, help_text='Include the e-mail address of someone who can watch a video of your talk, shortly after the video is produced, to ensure quality.', max_length=254, null=True, verbose_name='E-mail of video reviewer'),
),
]

View file

@ -74,6 +74,15 @@ class ConferenceSpeaker(SpeakerBase):
"these here. Your response is optional."), "these here. Your response is optional."),
) )
reviewer = models.EmailField(
blank=True,
null=True,
verbose_name=_("E-mail of video reviewer"),
help_text=_("Include the e-mail address of someone who can watch a "
"video of your talk, shortly after the video is produced, "
"to ensure quality."),
)
code_of_conduct = models.BooleanField( code_of_conduct = models.BooleanField(
default=False, default=False,
help_text=_("I have read and, in the event that my proposal is " help_text=_("I have read and, in the event that my proposal is "

View file

@ -229,6 +229,8 @@ INSTALLED_APPS = [
# stylesheets and js # stylesheets and js
'compressor', 'compressor',
'email_log',
] ]
# A sample logging configuration. The only tangible logging # A sample logging configuration. The only tangible logging
@ -270,7 +272,8 @@ FIXTURE_DIRS = [
# Heroku: Get email configuration from environment variables. # Heroku: Get email configuration from environment variables.
EMAIL_BACKEND = os.environ.get("DJANGO_EMAIL_BACKEND", "django.core.mail.backends.console.EmailBackend") # noqa EMAIL_BACKEND = "email_log.backends.EmailBackend"
EMAIL_LOG_BACKEND = os.environ.get("DJANGO_EMAIL_BACKEND", "django.core.mail.backends.console.EmailBackend") # noqa
EMAIL_HOST = os.environ.get("DJANGO_EMAIL_HOST", "") EMAIL_HOST = os.environ.get("DJANGO_EMAIL_HOST", "")
EMAIL_PORT = int(os.environ.get("DJANGO_EMAIL_PORT", 25)) EMAIL_PORT = int(os.environ.get("DJANGO_EMAIL_PORT", 25))
EMAIL_HOST_USER = os.environ.get("DJANGO_EMAIL_HOST_USER", "") EMAIL_HOST_USER = os.environ.get("DJANGO_EMAIL_HOST_USER", "")

View file

@ -1,158 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> {% spaceless %}
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<!-- {% load nbpy_tags %}
{% load registrasion_tags %} {% name_split user.attendee.attendeeprofilebase.attendeeprofile.name as split_name %}
{% items_purchased as purchased %} {% ticket_type as ticket %}
{% items_pending as pending %} {% affiliation ticket user as aff %}
{% items_purchased 1 as ticket %} {% company_split aff as split_affiliation %}
{% total_items_purchased 2 as dinner_count %} {% special user as special %}
{% total_items_purchased 4 as breakfast_count %}
-->
<svg {% with name1=split_name.first name2=split_name.last affiliation1=split_affiliation.first affiliation2=split_affiliation.last %}
xmlns:dc="http://purl.org/dc/elements/1.1/" {% include "registrasion/badge_outer.svg" %}
xmlns:cc="http://creativecommons.org/ns#" {% endwith %}
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg" {% endspaceless %}
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="176.50401mm"
height="175.11671mm"
viewBox="0 0 625.40792 620.49229"
id="svg4599"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="badge.svg">
<defs
id="defs4601" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.93566975"
inkscape:cx="334.04214"
inkscape:cy="336.65369"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-right="20"
fit-margin-bottom="20"
inkscape:window-width="1440"
inkscape:window-height="801"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata4604">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(41.973876,21.941793)">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:24px;line-height:125%;font-family:Gotham;-inkscape-font-specification:Gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="28.572266"
y="77.124352"
id="text4146"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="28.572266"
y="77.124352"
id="tspan4148"
style="font-size:30px"><tspan
x="28.572266"
y="77.124352"
style="font-size:30px"
id="tspan4150"
dx="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26.71875">{{ user.attendee.attendeeprofilebase.attendeeprofile.name }}</tspan></tspan><tspan
sodipodi:role="line"
x="28.572266"
y="114.62435"
id="tspan4154"
style="font-size:30px">{{ user.attendee.attendeeprofilebase.attendeeprofile.company }}</tspan><tspan
sodipodi:role="line"
x="28.572266"
y="152.12436"
id="tspan4160"
style="font-size:30px" /><tspan
sodipodi:role="line"
x="28.572266"
y="189.62436"
id="tspan4164"
style="font-size:30px">{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_1 }}</tspan><tspan
sodipodi:role="line"
x="28.572266"
y="227.12436"
id="tspan4170"
style="font-size:30px">{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_2 }}</tspan><tspan
sodipodi:role="line"
x="28.572266"
y="264.62436"
id="tspan4176"
style="font-size:30px" /><tspan
sodipodi:role="line"
x="28.572266"
y="302.12436"
id="tspan4180"
style="font-size:30px"><tspan
x="28.572266"
style="font-size:30px"
id="tspan4182"
dx="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21.640625">{% if user.attendee.attendeeprofilebase.attendeeprofile.of_legal_age %}18+?{% else %}MINOR{% endif %}</tspan></tspan><tspan
sodipodi:role="line"
x="28.572266"
y="339.62436"
id="tspan4186"
style="font-size:30px" /><tspan
sodipodi:role="line"
x="28.572266"
y="377.12436"
id="tspan4190"
style="font-size:30px">DINNER: {{ dinner_count }}</tspan><tspan
sodipodi:role="line"
x="28.572266"
y="414.62436"
id="tspan4161"
style="font-size:30px">BREAKFAST: {{ breakfast_count }}</tspan><tspan
sodipodi:role="line"
x="28.572266"
y="452.12436"
style="font-size:30px"
id="tspan4184" /><tspan
sodipodi:role="line"
x="28.572266"
y="489.62436"
style="font-size:30px"
id="tspan4187">TICKET: {% for ticket in ticket %}{{ ticket.product.name }}{% endfor %}</tspan><tspan
sodipodi:role="line"
x="28.572266"
y="527.12433"
id="tspan4196"
style="font-size:30px" /></text>
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.4745636;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4182"
width="623.97272"
height="617.53876"
x="-40.736595"
y="-20.704514" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 475 B

View file

@ -0,0 +1,396 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
id="svg8019"
viewBox="0 0 326.25001 989.99998"
height="11in"
width="3.625in">
<defs
id="defs8021">
<linearGradient
id="linearGradient8426">
<stop
style="stop-color:#449fe8;stop-opacity:1"
offset="0"
id="stop8428" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="1"
id="stop8430" />
</linearGradient>
<linearGradient
id="linearGradient6747">
<stop
style="stop-color:#3c9c00;stop-opacity:1"
offset="0"
id="stop6749" />
<stop
style="stop-color:#309600;stop-opacity:1;"
offset="1"
id="stop6751" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3055">
<path
d="M 0,0 487,0 487,172 0,172 0,0 Z"
id="path3057" />
</clipPath>
<linearGradient
id="linearGradient2795">
<stop
id="stop2797"
offset="0"
style="stop-color:#b8b8b8;stop-opacity:0.49803922;" />
<stop
id="stop2799"
offset="1"
style="stop-color:#7f7f7f;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient2787">
<stop
id="stop2789"
offset="0"
style="stop-color:#7f7f7f;stop-opacity:0.5;" />
<stop
id="stop2791"
offset="1"
style="stop-color:#7f7f7f;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3676">
<stop
id="stop3678"
offset="0"
style="stop-color:#b2b2b2;stop-opacity:0.5;" />
<stop
id="stop3680"
offset="1"
style="stop-color:#b3b3b3;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3236">
<stop
id="stop3244"
offset="0"
style="stop-color:#f4f4f4;stop-opacity:1" />
<stop
id="stop3240"
offset="1"
style="stop-color:white;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4671">
<stop
id="stop4673"
offset="0"
style="stop-color:#ffd43b;stop-opacity:1;" />
<stop
id="stop4675"
offset="1"
style="stop-color:#ffe873;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4689">
<stop
id="stop4691"
offset="0"
style="stop-color:#4abf00;stop-opacity:1;" />
<stop
id="stop4693"
offset="1"
style="stop-color:#309600;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientTransform="translate(100.2702,99.61116)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient4671"
id="linearGradient2987"
y2="144.75717"
x2="-65.308502"
y1="144.75717"
x1="224.23996" />
<linearGradient
gradientTransform="translate(100.2702,99.61116)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient4689"
id="linearGradient2990"
y2="76.313133"
x2="26.670298"
y1="77.475983"
x1="172.94208" />
<linearGradient
y2="144.75717"
x2="-65.308502"
y1="144.75717"
x1="224.23996"
gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)"
gradientUnits="userSpaceOnUse"
id="linearGradient2255"
xlink:href="#linearGradient4671" />
<linearGradient
y2="76.313133"
x2="26.670298"
y1="76.176224"
x1="172.94208"
gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)"
gradientUnits="userSpaceOnUse"
id="linearGradient2258"
xlink:href="#linearGradient4689" />
<radialGradient
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.177966,0,108.7434)"
r="29.036913"
fy="132.28575"
fx="61.518883"
cy="132.28575"
cx="61.518883"
id="radialGradient2801"
xlink:href="#linearGradient2795" />
<radialGradient
r="29.036913"
fy="132.28575"
fx="61.518883"
cy="132.28575"
cx="61.518883"
gradientTransform="matrix(2.382716e-8,-0.296405,1.43676,4.683673e-7,-128.544,150.5202)"
gradientUnits="userSpaceOnUse"
id="radialGradient1480"
xlink:href="#linearGradient2795" />
<linearGradient
id="linearGradient4125">
<stop
id="stop4127"
offset="0"
style="stop-color:#000080;stop-opacity:0.28456914;" />
<stop
id="stop4129"
offset="1"
style="stop-color:#000080;stop-opacity:0;" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient8426"
id="linearGradient8442"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.7944572,0,0,0.86754101,-266.2916,412.78825)"
x1="242.77402"
y1="167.55923"
x2="242.77402"
y2="285.92529" />
<linearGradient
xlink:href="#linearGradient4689"
id="linearGradient8444"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.0356697,1.9079451,-2.056054,1.9270505,155.25323,689.59387)"
x1="78.698265"
y1="63.044083"
x2="135.66525"
y2="114.39767" />
<linearGradient
y2="285.92529"
x2="242.77402"
y1="167.55923"
x1="242.77402"
gradientTransform="matrix(1.7944572,0,0,0.86754101,-266.2916,412.78825)"
gradientUnits="userSpaceOnUse"
id="linearGradient4610"
xlink:href="#linearGradient8426" />
<linearGradient
y2="114.39767"
x2="135.66525"
y1="63.044083"
x1="78.698265"
gradientTransform="matrix(2.0356697,1.9079451,-2.056054,1.9270505,155.25323,689.59387)"
gradientUnits="userSpaceOnUse"
id="linearGradient4612"
xlink:href="#linearGradient4689" />
</defs>
<metadata
id="metadata8024">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-62.36216)"
id="layer1">
<g
transform="translate(0,-495.00002)"
id="g4377">
<g
id="g4423">
<g
transform="matrix(1.6211362,1.5194208,-1.6211362,1.5194208,-1218.0028,-1250.3998)"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:gotham;-inkscape-font-specification:gotham;letter-spacing:0px;word-spacing:0px;fill:#808080;fill-opacity:1;stroke:none"
id="text2995" />
<g
transform="matrix(1.6211362,1.5194208,-1.6211362,1.5194208,-2973.0052,-1110.6651)"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:gotham;-inkscape-font-specification:gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
id="flowRoot3804" />
<g
transform="matrix(1.6211362,1.5194208,-1.6211362,1.5194208,-1218.0028,-1250.3998)"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:gotham;-inkscape-font-specification:gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
id="text3976" />
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient8442);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect8432"
width="328.12933"
height="158.63606"
x="0.31336421"
y="557.36218" />
<path
id="path8434"
d="m 255.04384,592.85974 c -8.10456,0 -14.78869,6.10194 -15.29344,13.96177 l -0.0936,1.4651 -1.04775,-0.075 c -1.34726,-0.0961 -3.20232,0.27406 -4.6873,0.93445 -1.44117,0.64094 -3.67616,2.67727 -4.41435,4.02216 l -0.49623,0.90483 -1.29477,-0.62048 c -2.76647,-1.32471 -5.47542,-1.92705 -8.66399,-1.926 -2.26404,5.7e-4 -3.9695,0.25371 -5.97868,0.88583 -5.46881,1.72066 -9.70543,5.79359 -11.24676,10.81386 l -0.40715,1.32554 -1.23047,0 c -5.87227,0 -11.60784,3.18142 -13.21482,7.33077 -1.21683,3.14201 -0.37774,6.0762 2.50153,8.7515 1.26236,1.17296 1.76296,1.51084 3.27861,2.21246 2.63424,1.21944 4.61103,1.65348 7.66366,1.68178 l 2.44739,0.0224 1.23721,1.13529 c 1.71484,1.57381 4.19501,2.63949 6.14221,2.63949 0.59239,0 0.66854,0.0597 1.18648,0.92388 0.8677,1.44771 2.76455,3.09239 4.46848,3.87524 1.97775,0.90865 3.30197,1.20296 5.46547,1.21353 2.18218,0.0123 3.73979,-0.32654 5.57488,-1.20612 l 1.29815,-0.62263 0.53573,0.59828 c 3.3394,3.73108 8.19456,6.18095 13.41556,6.76844 5.04971,0.56821 10.74827,-0.92501 14.79269,-3.87521 l 1.08048,-0.78859 1.65791,0.66598 c 3.28717,1.32149 6.38691,1.85983 9.87305,1.7135 5.64833,-0.23719 10.44005,-2.15495 14.45207,-5.78536 1.22213,-1.10588 2.73682,-2.7317 3.06208,-3.28643 0.015,-0.0254 0.47983,0.20696 1.03421,0.51479 1.184,0.65767 3.63099,1.45197 5.20721,1.69025 4.4718,0.67606 9.46617,-0.77582 12.678,-3.68494 0.63402,-0.57427 1.30262,-1.23395 1.48647,-1.46616 l 0.33497,-0.42176 1.53385,0.49471 c 1.382,0.44614 1.73853,0.49518 3.59104,0.49471 1.80408,-5e-4 2.22506,-0.0549 3.42635,-0.44609 3.31584,-1.07952 5.68851,-3.24815 6.7873,-6.205 0.57054,-1.53496 0.56744,-3.97389 -0.006,-5.61409 -0.82033,-2.34775 -2.82237,-4.52921 -5.18466,-5.64686 -1.36577,-0.64617 -3.35274,-1.1089 -4.76288,-1.1089 l -1.14248,0 -0.44662,-1.69129 c -2.15429,-8.16034 -11.18996,-13.89881 -21.89453,-13.90471 -2.83463,-0.002 -4.31261,0.16235 -6.82112,0.75686 -0.97111,0.23023 -1.78361,0.39268 -1.80565,0.36045 -0.0212,-0.0322 -0.34428,-0.6367 -0.71618,-1.34351 -0.51411,-0.97705 -1.00663,-1.59344 -2.05155,-2.57187 -2.05352,-1.9228 -4.22139,-2.80966 -6.87188,-2.80966 l -1.22822,0 -0.11404,-0.80444 c -0.30545,-2.15805 -1.63329,-4.93878 -3.27748,-6.86252 -2.97977,-3.4863 -7.15676,-5.39104 -11.82083,-5.39104 z"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4.54716158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<path
style="opacity:1;fill:url(#linearGradient8444);fill-opacity:1;stroke:#000000;stroke-width:4.54716158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 261.33148,905.72522 c -16.50449,0.23206 -29.87268,8.8144 -44.75263,22.76074 l -45.46084,42.50872 93.45359,86.73022 c 39.84599,0 71.47724,-1.6556 71.47724,-1.6556 l 0,-114.82042 c -6.91075,-5.28108 -13.7806,-10.17555 -20.50488,-14.58228 -22.64758,-14.85068 -39.64969,-21.14614 -54.21248,-20.94138 z M 69.554945,916.10821 c -15.778946,0.0998 -32.295005,4.45081 -48.535825,13.79126 -10.550416,6.04829 -19.8891263,11.83401 -28.4125679,17.70166 l 0,110.45247 c 64.7666129,0 180.5976879,-0.3287 263.2170779,-0.3287 L 167.25775,974.71248 130.8458,940.58512 C 114.10288,924.89273 92.616487,915.96232 69.554945,916.10821 Z m 195.776245,22.04195 c 6.65359,-0.0607 13.28885,2.25086 18.3179,6.96442 10.02216,9.39336 9.88639,24.86464 -0.34494,34.45407 -10.19511,9.55543 -26.62831,9.61346 -36.65048,0.22011 -10.05808,-9.42702 -9.96388,-24.79205 0.23118,-34.34747 5.11568,-4.79471 11.79275,-7.2304 18.44634,-7.29113 z"
id="path8436" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4.54716158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 40.712889,622.07495 c -0.629291,-0.0528 -2.265032,-0.28635 -2.842544,-0.40597 -2.461569,-0.50991 -5.015648,-1.55887 -6.872351,-2.82251 l -0.451541,-0.30731 -0.465913,0.21992 c -1.138509,0.53736 -2.107705,0.74207 -3.513486,0.74207 -1.136819,0 -1.597998,-0.066 -2.548631,-0.36518 -0.716784,-0.22553 -1.602168,-0.65872 -2.172785,-1.06311 -0.272533,-0.19313 -0.540631,-0.33818 -0.595829,-0.32233 -0.05524,0.0159 -0.441603,0.14387 -0.858687,0.28486 -0.417104,0.14087 -1.13943,0.33122 -1.605193,0.42312 -0.755825,0.14915 -0.997828,0.16746 -2.251393,0.17169 -1.472552,0.005 -1.859276,-0.0354 -3.076054,-0.31943 -1.771501,-0.41356 -3.29803,-1.19806 -4.4881493,-2.30648 -0.9290839,-0.8653 -1.5320341,-1.80975 -1.8424614,-2.88598 -0.205386,-0.71201 -0.2054048,-1.98323 -9.4e-5,-2.69554 0.7055304,-2.44778 3.2502907,-4.50523 6.4364977,-5.20392 l 0.507697,-0.11129 -0.03138,-0.61129 c -0.05542,-1.07919 0.300263,-1.81505 1.301717,-2.69291 0.626416,-0.54908 1.346525,-0.96553 2.270217,-1.31285 0.679961,-0.25568 2.17983,-0.63044 2.523117,-0.63044 0.222257,0 0.226672,0.0655 -0.06125,-0.90897 -0.170216,-0.57623 -0.185622,-0.72052 -0.190431,-1.78657 -0.0038,-0.76759 0.02499,-1.27629 0.08379,-1.5045 0.409025,-1.58248 1.098116,-2.77053 2.218364,-3.82466 1.105368,-1.0401 2.461212,-1.71848 4.079894,-2.04128 0.696024,-0.13876 2.149282,-0.15549 2.876005,-0.0331 1.059883,0.17855 2.248686,0.63122 3.152501,1.20039 0.939286,0.59154 2.154505,1.90249 2.612696,2.81855 0.08455,0.16923 0.17341,0.30897 0.197308,0.31038 0.02386,10e-4 0.238226,-0.1083 0.476434,-0.24403 0.79665,-0.45362 1.877238,-0.80468 2.91435,-0.9468 0.367993,-0.0504 0.54546,-0.10178 0.54546,-0.15778 0,-0.0458 0.142034,-0.34569 0.31582,-0.66668 0.267291,-0.49397 0.423998,-0.68546 1.019978,-1.24637 1.208493,-1.13744 2.533018,-1.80346 4.466449,-2.24585 1.160979,-0.26566 1.922121,-0.34687 3.227013,-0.34434 4.467652,0.009 8.216659,1.97571 9.007692,4.72606 0.16007,0.5562 0.148798,1.52359 -0.02367,2.07043 l -0.129258,0.40921 0.839636,-0.26538 c 2.193564,-0.6933 4.638675,-0.82166 6.997589,-0.36739 3.076656,0.59252 5.376369,2.17058 5.844068,4.01028 0.09582,0.37677 0.09845,1.17813 0.0056,1.47681 -0.107465,0.3441 -0.096,0.35748 0.349543,0.40381 1.169734,0.12167 2.744642,0.55425 3.927321,1.07871 2.139568,0.94878 3.792707,2.41103 4.650699,4.11373 1.321801,2.62312 0.661623,5.51043 -1.762333,7.70766 -1.372734,1.2443 -3.116767,2.13321 -5.148814,2.6243 -0.42909,0.10372 -0.796932,0.20839 -0.817448,0.23265 -1.551404,1.83473 -2.93218,2.88314 -5.100437,3.87265 -3.060104,1.39652 -6.941376,1.8451 -10.469911,1.21008 -1.331345,-0.2396 -3.020049,-0.77081 -4.150273,-1.30555 l -0.427361,-0.2022 -0.715187,0.31829 c -1.743958,0.77618 -3.511082,1.26842 -5.652792,1.57465 -0.720635,0.10301 -1.321613,0.13841 -2.608469,0.15337 -0.919634,0.0106 -1.807517,0.009 -1.973054,-0.005 z"
id="path8438" />
<path
id="path8440"
d="m 149.58268,590.99235 c -0.4832,-0.0405 -1.73917,-0.21987 -2.18259,-0.31171 -1.89007,-0.39154 -3.85116,-1.19696 -5.2768,-2.16722 l -0.3467,-0.23596 -0.35774,0.16887 c -0.87418,0.41259 -1.61836,0.56976 -2.69776,0.56976 -0.87287,0 -1.22698,-0.0507 -1.9569,-0.28038 -0.55038,-0.1731 -1.23019,-0.5058 -1.66834,-0.81627 -0.20925,-0.14827 -0.41511,-0.25968 -0.45749,-0.24751 -0.0425,0.0123 -0.33906,0.11058 -0.65934,0.21872 -0.32025,0.10811 -0.87488,0.25434 -1.2325,0.3249 -0.58035,0.11445 -0.76616,0.12872 -1.72868,0.13171 -1.13068,0.004 -1.4276,-0.0271 -2.36189,-0.24527 -1.3602,-0.31756 -2.53232,-0.91992 -3.44613,-1.77099 -0.71338,-0.66442 -1.17633,-1.38958 -1.41468,-2.21593 -0.15763,-0.5467 -0.15782,-1.52277 -1e-4,-2.0697 0.54174,-1.87947 2.49569,-3.45925 4.94215,-3.99573 l 0.38983,-0.0854 -0.0241,-0.46938 c -0.0425,-0.82861 0.23056,-1.39363 0.99952,-2.06768 0.48096,-0.4216 1.03388,-0.74136 1.74311,-1.00805 0.52211,-0.19632 1.67375,-0.48406 1.93734,-0.48406 0.17059,0 0.17397,0.0504 -0.047,-0.69794 -0.13076,-0.44244 -0.1426,-0.55324 -0.14617,-1.37178 -0.002,-0.58939 0.0192,-0.97997 0.0644,-1.15519 0.31406,-1.21508 0.84315,-2.1273 1.70332,-2.93669 0.84873,-0.79863 1.88979,-1.3195 3.13267,-1.56736 0.53443,-0.10653 1.65028,-0.11939 2.20827,-0.0255 0.8138,0.13699 1.72662,0.48466 2.42057,0.92168 0.72122,0.4542 1.65431,1.46079 2.00612,2.16417 0.065,0.12995 0.13321,0.23723 0.15143,0.23832 0.0188,9.1e-4 0.18299,-0.0831 0.36582,-0.18738 0.6117,-0.3483 1.44142,-0.61785 2.23773,-0.72698 0.28256,-0.0387 0.41881,-0.0782 0.41881,-0.12114 0,-0.0351 0.10897,-0.26544 0.24251,-0.51189 0.20524,-0.3793 0.32555,-0.52633 0.78316,-0.95702 0.92792,-0.87336 1.94493,-1.38474 3.42947,-1.72441 0.89145,-0.20398 1.47586,-0.26634 2.4778,-0.2644 3.43039,0.007 6.30899,1.517 6.91637,3.6288 0.12287,0.42707 0.11423,1.16986 -0.0188,1.58974 l -0.0992,0.3142 0.64471,-0.20377 c 1.68427,-0.53233 3.5617,-0.63089 5.37295,-0.2821 2.36233,0.45496 4.12812,1.66664 4.48723,3.07922 0.0737,0.28929 0.0757,0.90462 0.004,1.13393 -0.0825,0.26421 -0.0736,0.27449 0.26838,0.31006 0.89816,0.0933 2.10742,0.42557 3.01552,0.82827 1.64282,0.72851 2.91215,1.85126 3.57094,3.15864 1.01492,2.01412 0.50801,4.23106 -1.35318,5.91814 -1.054,0.95542 -2.39312,1.63796 -3.95341,2.01503 -0.32946,0.0796 -0.6119,0.16007 -0.62766,0.17862 -1.19119,1.40876 -2.25139,2.21377 -3.91625,2.97355 -2.34966,1.07229 -5.3298,1.41672 -8.0391,0.92913 -1.02225,-0.18398 -2.3189,-0.59187 -3.1867,-1.00245 l -0.32814,-0.15531 -0.54914,0.24439 c -1.33907,0.59597 -2.69591,0.97392 -4.34039,1.20905 -0.55331,0.0791 -1.01475,0.10636 -2.00285,0.11781 -0.70613,0.009 -1.38786,0.007 -1.51497,-0.004 z"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4.54716158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text9220"
y="712.10016"
x="20.275991"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:100%;font-family:Gotham;-inkscape-font-specification:Gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:40px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:'Montserrat Medium'"
y="712.10016"
x="20.275991"
id="tspan9222">{{ name1 }}</tspan><tspan
id="tspan9224"
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:40px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:'Montserrat Medium'"
y="752.10016"
x="20.275991">{{ name2 }}</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:100%;font-family:Gotham;-inkscape-font-specification:Gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="20.275991"
y="829.06451"
id="text9226"><tspan
x="20.275991"
y="829.06451"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:Montserrat"
id="tspan9230">{{ affiliation1 }}</tspan><tspan
id="tspan9234"
x="20.275991"
y="854.06451"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:Montserrat">{{ affiliation2 }}</tspan></text>
<text
id="text4568"
y="879.23187"
x="20.275991"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:100%;font-family:Gotham;-inkscape-font-specification:Gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan4570"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:Montserrat"
y="879.23187"
x="20.275991" /><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:Montserrat"
y="904.23187"
x="20.275991"
id="tspan4572">{{ special }}</tspan></text>
</g>
<g
transform="matrix(-1,0,0,-1,328.65539,2102.4508)"
id="g4574">
<g
id="g4576"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:gotham;-inkscape-font-specification:gotham;letter-spacing:0px;word-spacing:0px;fill:#808080;fill-opacity:1;stroke:none"
transform="matrix(1.6211362,1.5194208,-1.6211362,1.5194208,-1218.0028,-1250.3998)" />
<g
id="g4578"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:gotham;-inkscape-font-specification:gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(1.6211362,1.5194208,-1.6211362,1.5194208,-2973.0052,-1110.6651)" />
<g
id="g4580"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:gotham;-inkscape-font-specification:gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(1.6211362,1.5194208,-1.6211362,1.5194208,-1218.0028,-1250.3998)" />
<rect
y="557.36218"
x="0.31336421"
height="158.63606"
width="328.12933"
id="rect4582"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient4610);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4.54716158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 255.04384,592.85974 c -8.10456,0 -14.78869,6.10194 -15.29344,13.96177 l -0.0936,1.4651 -1.04775,-0.075 c -1.34726,-0.0961 -3.20232,0.27406 -4.6873,0.93445 -1.44117,0.64094 -3.67616,2.67727 -4.41435,4.02216 l -0.49623,0.90483 -1.29477,-0.62048 c -2.76647,-1.32471 -5.47542,-1.92705 -8.66399,-1.926 -2.26404,5.7e-4 -3.9695,0.25371 -5.97868,0.88583 -5.46881,1.72066 -9.70543,5.79359 -11.24676,10.81386 l -0.40715,1.32554 -1.23047,0 c -5.87227,0 -11.60784,3.18142 -13.21482,7.33077 -1.21683,3.14201 -0.37774,6.0762 2.50153,8.7515 1.26236,1.17296 1.76296,1.51084 3.27861,2.21246 2.63424,1.21944 4.61103,1.65348 7.66366,1.68178 l 2.44739,0.0224 1.23721,1.13529 c 1.71484,1.57381 4.19501,2.63949 6.14221,2.63949 0.59239,0 0.66854,0.0597 1.18648,0.92388 0.8677,1.44771 2.76455,3.09239 4.46848,3.87524 1.97775,0.90865 3.30197,1.20296 5.46547,1.21353 2.18218,0.0123 3.73979,-0.32654 5.57488,-1.20612 l 1.29815,-0.62263 0.53573,0.59828 c 3.3394,3.73108 8.19456,6.18095 13.41556,6.76844 5.04971,0.56821 10.74827,-0.92501 14.79269,-3.87521 l 1.08048,-0.78859 1.65791,0.66598 c 3.28717,1.32149 6.38691,1.85983 9.87305,1.7135 5.64833,-0.23719 10.44005,-2.15495 14.45207,-5.78536 1.22213,-1.10588 2.73682,-2.7317 3.06208,-3.28643 0.015,-0.0254 0.47983,0.20696 1.03421,0.51479 1.184,0.65767 3.63099,1.45197 5.20721,1.69025 4.4718,0.67606 9.46617,-0.77582 12.678,-3.68494 0.63402,-0.57427 1.30262,-1.23395 1.48647,-1.46616 l 0.33497,-0.42176 1.53385,0.49471 c 1.382,0.44614 1.73853,0.49518 3.59104,0.49471 1.80408,-5e-4 2.22506,-0.0549 3.42635,-0.44609 3.31584,-1.07952 5.68851,-3.24815 6.7873,-6.205 0.57054,-1.53496 0.56744,-3.97389 -0.006,-5.61409 -0.82033,-2.34775 -2.82237,-4.52921 -5.18466,-5.64686 -1.36577,-0.64617 -3.35274,-1.1089 -4.76288,-1.1089 l -1.14248,0 -0.44662,-1.69129 c -2.15429,-8.16034 -11.18996,-13.89881 -21.89453,-13.90471 -2.83463,-0.002 -4.31261,0.16235 -6.82112,0.75686 -0.97111,0.23023 -1.78361,0.39268 -1.80565,0.36045 -0.0212,-0.0322 -0.34428,-0.6367 -0.71618,-1.34351 -0.51411,-0.97705 -1.00663,-1.59344 -2.05155,-2.57187 -2.05352,-1.9228 -4.22139,-2.80966 -6.87188,-2.80966 l -1.22822,0 -0.11404,-0.80444 c -0.30545,-2.15805 -1.63329,-4.93878 -3.27748,-6.86252 -2.97977,-3.4863 -7.15676,-5.39104 -11.82083,-5.39104 z"
id="path4584" />
<path
id="path4586"
d="m 261.33148,905.72522 c -16.50449,0.23206 -29.87268,8.8144 -44.75263,22.76074 l -45.46084,42.50872 93.45359,86.73022 c 39.84599,0 71.47724,-1.6556 71.47724,-1.6556 l 0,-114.82042 c -6.91075,-5.28108 -13.7806,-10.17555 -20.50488,-14.58228 -22.64758,-14.85068 -39.64969,-21.14614 -54.21248,-20.94138 z M 69.554945,916.10821 c -15.778946,0.0998 -32.295005,4.45081 -48.535825,13.79126 -10.550416,6.04829 -19.8891263,11.83401 -28.4125679,17.70166 l 0,110.45247 c 64.7666129,0 180.5976879,-0.3287 263.2170779,-0.3287 L 167.25775,974.71248 130.8458,940.58512 C 114.10288,924.89273 92.616487,915.96232 69.554945,916.10821 Z m 195.776245,22.04195 c 6.65359,-0.0607 13.28885,2.25086 18.3179,6.96442 10.02216,9.39336 9.88639,24.86464 -0.34494,34.45407 -10.19511,9.55543 -26.62831,9.61346 -36.65048,0.22011 -10.05808,-9.42702 -9.96388,-24.79205 0.23118,-34.34747 5.11568,-4.79471 11.79275,-7.2304 18.44634,-7.29113 z"
style="opacity:1;fill:url(#linearGradient4612);fill-opacity:1;stroke:#000000;stroke-width:4.54716158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path4588"
d="m 40.712889,622.07495 c -0.629291,-0.0528 -2.265032,-0.28635 -2.842544,-0.40597 -2.461569,-0.50991 -5.015648,-1.55887 -6.872351,-2.82251 l -0.451541,-0.30731 -0.465913,0.21992 c -1.138509,0.53736 -2.107705,0.74207 -3.513486,0.74207 -1.136819,0 -1.597998,-0.066 -2.548631,-0.36518 -0.716784,-0.22553 -1.602168,-0.65872 -2.172785,-1.06311 -0.272533,-0.19313 -0.540631,-0.33818 -0.595829,-0.32233 -0.05524,0.0159 -0.441603,0.14387 -0.858687,0.28486 -0.417104,0.14087 -1.13943,0.33122 -1.605193,0.42312 -0.755825,0.14915 -0.997828,0.16746 -2.251393,0.17169 -1.472552,0.005 -1.859276,-0.0354 -3.076054,-0.31943 -1.771501,-0.41356 -3.29803,-1.19806 -4.4881493,-2.30648 -0.9290839,-0.8653 -1.5320341,-1.80975 -1.8424614,-2.88598 -0.205386,-0.71201 -0.2054048,-1.98323 -9.4e-5,-2.69554 0.7055304,-2.44778 3.2502907,-4.50523 6.4364977,-5.20392 l 0.507697,-0.11129 -0.03138,-0.61129 c -0.05542,-1.07919 0.300263,-1.81505 1.301717,-2.69291 0.626416,-0.54908 1.346525,-0.96553 2.270217,-1.31285 0.679961,-0.25568 2.17983,-0.63044 2.523117,-0.63044 0.222257,0 0.226672,0.0655 -0.06125,-0.90897 -0.170216,-0.57623 -0.185622,-0.72052 -0.190431,-1.78657 -0.0038,-0.76759 0.02499,-1.27629 0.08379,-1.5045 0.409025,-1.58248 1.098116,-2.77053 2.218364,-3.82466 1.105368,-1.0401 2.461212,-1.71848 4.079894,-2.04128 0.696024,-0.13876 2.149282,-0.15549 2.876005,-0.0331 1.059883,0.17855 2.248686,0.63122 3.152501,1.20039 0.939286,0.59154 2.154505,1.90249 2.612696,2.81855 0.08455,0.16923 0.17341,0.30897 0.197308,0.31038 0.02386,10e-4 0.238226,-0.1083 0.476434,-0.24403 0.79665,-0.45362 1.877238,-0.80468 2.91435,-0.9468 0.367993,-0.0504 0.54546,-0.10178 0.54546,-0.15778 0,-0.0458 0.142034,-0.34569 0.31582,-0.66668 0.267291,-0.49397 0.423998,-0.68546 1.019978,-1.24637 1.208493,-1.13744 2.533018,-1.80346 4.466449,-2.24585 1.160979,-0.26566 1.922121,-0.34687 3.227013,-0.34434 4.467652,0.009 8.216659,1.97571 9.007692,4.72606 0.16007,0.5562 0.148798,1.52359 -0.02367,2.07043 l -0.129258,0.40921 0.839636,-0.26538 c 2.193564,-0.6933 4.638675,-0.82166 6.997589,-0.36739 3.076656,0.59252 5.376369,2.17058 5.844068,4.01028 0.09582,0.37677 0.09845,1.17813 0.0056,1.47681 -0.107465,0.3441 -0.096,0.35748 0.349543,0.40381 1.169734,0.12167 2.744642,0.55425 3.927321,1.07871 2.139568,0.94878 3.792707,2.41103 4.650699,4.11373 1.321801,2.62312 0.661623,5.51043 -1.762333,7.70766 -1.372734,1.2443 -3.116767,2.13321 -5.148814,2.6243 -0.42909,0.10372 -0.796932,0.20839 -0.817448,0.23265 -1.551404,1.83473 -2.93218,2.88314 -5.100437,3.87265 -3.060104,1.39652 -6.941376,1.8451 -10.469911,1.21008 -1.331345,-0.2396 -3.020049,-0.77081 -4.150273,-1.30555 l -0.427361,-0.2022 -0.715187,0.31829 c -1.743958,0.77618 -3.511082,1.26842 -5.652792,1.57465 -0.720635,0.10301 -1.321613,0.13841 -2.608469,0.15337 -0.919634,0.0106 -1.807517,0.009 -1.973054,-0.005 z"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4.54716158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4.54716158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 149.58268,590.99235 c -0.4832,-0.0405 -1.73917,-0.21987 -2.18259,-0.31171 -1.89007,-0.39154 -3.85116,-1.19696 -5.2768,-2.16722 l -0.3467,-0.23596 -0.35774,0.16887 c -0.87418,0.41259 -1.61836,0.56976 -2.69776,0.56976 -0.87287,0 -1.22698,-0.0507 -1.9569,-0.28038 -0.55038,-0.1731 -1.23019,-0.5058 -1.66834,-0.81627 -0.20925,-0.14827 -0.41511,-0.25968 -0.45749,-0.24751 -0.0425,0.0123 -0.33906,0.11058 -0.65934,0.21872 -0.32025,0.10811 -0.87488,0.25434 -1.2325,0.3249 -0.58035,0.11445 -0.76616,0.12872 -1.72868,0.13171 -1.13068,0.004 -1.4276,-0.0271 -2.36189,-0.24527 -1.3602,-0.31756 -2.53232,-0.91992 -3.44613,-1.77099 -0.71338,-0.66442 -1.17633,-1.38958 -1.41468,-2.21593 -0.15763,-0.5467 -0.15782,-1.52277 -1e-4,-2.0697 0.54174,-1.87947 2.49569,-3.45925 4.94215,-3.99573 l 0.38983,-0.0854 -0.0241,-0.46938 c -0.0425,-0.82861 0.23056,-1.39363 0.99952,-2.06768 0.48096,-0.4216 1.03388,-0.74136 1.74311,-1.00805 0.52211,-0.19632 1.67375,-0.48406 1.93734,-0.48406 0.17059,0 0.17397,0.0504 -0.047,-0.69794 -0.13076,-0.44244 -0.1426,-0.55324 -0.14617,-1.37178 -0.002,-0.58939 0.0192,-0.97997 0.0644,-1.15519 0.31406,-1.21508 0.84315,-2.1273 1.70332,-2.93669 0.84873,-0.79863 1.88979,-1.3195 3.13267,-1.56736 0.53443,-0.10653 1.65028,-0.11939 2.20827,-0.0255 0.8138,0.13699 1.72662,0.48466 2.42057,0.92168 0.72122,0.4542 1.65431,1.46079 2.00612,2.16417 0.065,0.12995 0.13321,0.23723 0.15143,0.23832 0.0188,9.1e-4 0.18299,-0.0831 0.36582,-0.18738 0.6117,-0.3483 1.44142,-0.61785 2.23773,-0.72698 0.28256,-0.0387 0.41881,-0.0782 0.41881,-0.12114 0,-0.0351 0.10897,-0.26544 0.24251,-0.51189 0.20524,-0.3793 0.32555,-0.52633 0.78316,-0.95702 0.92792,-0.87336 1.94493,-1.38474 3.42947,-1.72441 0.89145,-0.20398 1.47586,-0.26634 2.4778,-0.2644 3.43039,0.007 6.30899,1.517 6.91637,3.6288 0.12287,0.42707 0.11423,1.16986 -0.0188,1.58974 l -0.0992,0.3142 0.64471,-0.20377 c 1.68427,-0.53233 3.5617,-0.63089 5.37295,-0.2821 2.36233,0.45496 4.12812,1.66664 4.48723,3.07922 0.0737,0.28929 0.0757,0.90462 0.004,1.13393 -0.0825,0.26421 -0.0736,0.27449 0.26838,0.31006 0.89816,0.0933 2.10742,0.42557 3.01552,0.82827 1.64282,0.72851 2.91215,1.85126 3.57094,3.15864 1.01492,2.01412 0.50801,4.23106 -1.35318,5.91814 -1.054,0.95542 -2.39312,1.63796 -3.95341,2.01503 -0.32946,0.0796 -0.6119,0.16007 -0.62766,0.17862 -1.19119,1.40876 -2.25139,2.21377 -3.91625,2.97355 -2.34966,1.07229 -5.3298,1.41672 -8.0391,0.92913 -1.02225,-0.18398 -2.3189,-0.59187 -3.1867,-1.00245 l -0.32814,-0.15531 -0.54914,0.24439 c -1.33907,0.59597 -2.69591,0.97392 -4.34039,1.20905 -0.55331,0.0791 -1.01475,0.10636 -2.00285,0.11781 -0.70613,0.009 -1.38786,0.007 -1.51497,-0.004 z"
id="path4590" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:100%;font-family:Gotham;-inkscape-font-specification:Gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="20.275991"
y="712.10016"
id="text4592"><tspan
id="tspan4594"
x="20.275991"
y="712.10016"
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:40px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:'Montserrat Medium'">{{ name1 }}</tspan><tspan
x="20.275991"
y="752.10016"
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:40px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:'Montserrat Medium'"
id="tspan4596">{{ name2 }}</tspan></text>
<text
id="text4598"
y="829.06451"
x="20.275991"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:100%;font-family:Gotham;-inkscape-font-specification:Gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan4600"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:Montserrat"
y="829.06451"
x="20.275991">{{ affiliation1 }}</tspan><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:Montserrat"
y="854.06451"
x="20.275991"
id="tspan4602">{{ affiliation2 }}</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:100%;font-family:Gotham;-inkscape-font-specification:Gotham;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="20.275991"
y="879.23187"
id="text4604"><tspan
x="20.275991"
y="879.23187"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:Montserrat"
id="tspan4606" /><tspan
id="tspan4608"
x="20.275991"
y="904.23187"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:100%;font-family:Montserrat;-inkscape-font-specification:Montserrat">{{ special }}</tspan></text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 35 KiB

View file

@ -138,7 +138,7 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
<a class="btn btn-lg btn-primary btn-shadow" href="/schedule/general-sessions/list">See the Full Program</a> <a class="btn btn-lg btn-primary btn-shadow" href="/schedule">See the schedule</a>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,6 +1,7 @@
from registrasion.models import commerce from registrasion.models import commerce
from registrasion.controllers.category import CategoryController from registrasion.controllers.category import CategoryController
from registrasion.controllers.item import ItemController from registrasion.controllers.item import ItemController
from registrasion.templatetags import registrasion_tags
from decimal import Decimal from decimal import Decimal
from django import template from django import template
@ -42,3 +43,75 @@ def donation_income(context, invoice):
donation = max(Decimal('0'), (invoice.value - sum(rbi))) donation = max(Decimal('0'), (invoice.value - sum(rbi)))
return donation.quantize(Decimal('.01')) return donation.quantize(Decimal('.01'))
# TODO: include van/de/van der/de la/etc etc etc
@register.simple_tag
def name_split(name, split_characters=None):
tokens = name.split()
if split_characters is None or len(name) > split_characters:
even_split = int((len(tokens) + 1) / 2) # Round up.
else:
even_split = len(tokens)
return {
"first" : " ".join(tokens[:even_split]),
"last" : " ".join(tokens[even_split:]),
}
@register.simple_tag
def company_split(name):
f = name_split(name, 18)
return f
@register.simple_tag(takes_context=True)
def special(context, user):
organiser = user.groups.filter(name='Conference organisers').exists()
try:
speaker = user.speaker_profile.presentations.count() != 0
except Exception:
speaker = False
volunteer = "Volunteer" in ticket_type(context)
if organiser:
return "Organizer"
elif speaker:
return "Speaker"
elif volunteer:
return "Staff"
else:
return ""
CLEARED = set([
"BeeWare Project",
"Project Jupyter",
"PSF Packaging WG / PyCon 2018 Chair",
"PyCon Ukraine",
"PyLadies PDX",
"Recovered Silver",
"Twisted",
"@vmbrasseur",
])
@register.simple_tag
def affiliation(ticket, user):
aff = user.attendee.attendeeprofilebase.attendeeprofile.company
if "Individual" not in ticket or "Sponsor" in ticket:
return aff
elif ticket == "Individual Supporter" and aff in CLEARED:
return aff
else:
return ""
@register.simple_tag(takes_context=True)
def ticket_type(context):
items = registrasion_tags.items_purchased(context)
for item in items:
if item.product.category.name == "Ticket":
return item.product.name

View file

@ -18,7 +18,7 @@ easy-thumbnails==2.4.1
django-timezone-field==2.0 django-timezone-field==2.0
django-model-utils==3.0.0 django-model-utils==3.0.0
wiki==0.3b3 wiki==0.3b3
django-email-log==0.2.0
# For testing # For testing
django-nose==1.4.4 django-nose==1.4.4