Changeset - 7ae51e1561ab
[Not reviewed]
Merge
0 9 2
Joshua Simmons - 3 years ago 2017-12-01 03:18:17
i@joshuasimmons.name
Merge branch 'master' of github.com:northbaypython/website
10 files changed with 590 insertions and 160 deletions:
0 comments (0 inline, 0 general)
Procfile
Show inline comments
 
web: gunicorn pinaxcon.wsgi --log-file - 
 
web: gunicorn pinaxcon.wsgi --timeout 30 --log-file -
pinaxcon/monkey_patch.py
Show inline comments
 
from django.conf import settings
 
from django.contrib.auth.models import User
 
from django.core.mail import EmailMultiAlternatives
 
from functools import wraps
 

	
...
 
@@ -12,6 +13,7 @@ class MonkeyPatchMiddleware(object):
 

	
 
def do_monkey_patch():
 
    patch_stripe_card_defaults()
 
    patch_conference_schedule()
 

	
 
    # Remove this function from existence
 
    global do_monkey_patch
...
 
@@ -24,9 +26,80 @@ def patch_stripe_card_defaults():
 

	
 
    old_sync_card = sources.sync_card
 

	
 
    @wraps(old_sync_card)
 
    def sync_card(customer, source):
 
        d = defaultdict(str)
 
        d.update(source)
 
        return old_sync_card(customer, d)
 

	
 
    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
pinaxcon/proposals/migrations/0006_conferencespeaker_reviewer.py
Show inline comments
 
new file 100644
 
# -*- 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'),
 
        ),
 
    ]
pinaxcon/proposals/models.py
Show inline comments
...
 
@@ -74,6 +74,15 @@ class ConferenceSpeaker(SpeakerBase):
 
                    "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(
 
        default=False,
 
        help_text=_("I have read and, in the event that my proposal is "
pinaxcon/settings.py
Show inline comments
...
 
@@ -229,6 +229,8 @@ INSTALLED_APPS = [
 

	
 
    # stylesheets and js
 
    'compressor',
 

	
 
    'email_log',
 
]
 

	
 
# A sample logging configuration. The only tangible logging
...
 
@@ -270,7 +272,8 @@ FIXTURE_DIRS = [
 

	
 
# 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_PORT = int(os.environ.get("DJANGO_EMAIL_PORT", 25))
 
EMAIL_HOST_USER = os.environ.get("DJANGO_EMAIL_HOST_USER", "")
pinaxcon/templates/registrasion/badge.svg
Show inline comments
 
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 
{% spaceless %}
 

	
 
<!--
 
{% load registrasion_tags %}
 
{% items_purchased as purchased %}
 
{% items_pending as pending %}
 
{% items_purchased 1 as ticket %}
 
{% total_items_purchased 2 as dinner_count %}
 
{% total_items_purchased 4 as breakfast_count %}
 
-->
 
{% load nbpy_tags %}
 
{% name_split user.attendee.attendeeprofilebase.attendeeprofile.name as split_name %}
 
{% ticket_type as ticket %}
 
{% affiliation ticket user as aff %}
 
{% company_split aff as split_affiliation %}
 
{% special user as special %}
 

	
 
<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: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>
 
{% with name1=split_name.first name2=split_name.last affiliation1=split_affiliation.first affiliation2=split_affiliation.last %}
 
  {% include "registrasion/badge_outer.svg" %}
 
{% endwith %}
 

	
 
{% endspaceless %}
pinaxcon/templates/registrasion/badge_outer.svg
Show inline comments
 
new file 100644
 
<?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>
pinaxcon/templates/static_pages/homepage.html
Show inline comments
...
 
@@ -138,7 +138,7 @@
 
      <div class="container">
 
        <div class="row">
 
          <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>
pinaxcon/templatetags/nbpy_tags.py
Show inline comments
 
from registrasion.models import commerce
 
from registrasion.controllers.category import CategoryController
 
from registrasion.controllers.item import ItemController
 
from registrasion.templatetags import registrasion_tags
 

	
 
from decimal import Decimal
 
from django import template
...
 
@@ -42,3 +43,75 @@ def donation_income(context, invoice):
 

	
 
    donation = max(Decimal('0'), (invoice.value - sum(rbi)))
 
    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
requirements/base.txt
Show inline comments
...
 
@@ -18,7 +18,7 @@ easy-thumbnails==2.4.1
 
django-timezone-field==2.0
 
django-model-utils==3.0.0
 
wiki==0.3b3
 

	
 
django-email-log==0.2.0
 

	
 
# For testing
 
django-nose==1.4.4
0 comments (0 inline, 0 general)