From 40c42af2d618943e284f6f13fd1b8045b9465a7f Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 15 Nov 2017 16:38:21 -0800 Subject: [PATCH 01/24] Add reviewer field --- .../0006_conferencespeaker_reviewer.py | 20 +++++++++++++++++++ pinaxcon/proposals/models.py | 9 +++++++++ 2 files changed, 29 insertions(+) create mode 100644 pinaxcon/proposals/migrations/0006_conferencespeaker_reviewer.py diff --git a/pinaxcon/proposals/migrations/0006_conferencespeaker_reviewer.py b/pinaxcon/proposals/migrations/0006_conferencespeaker_reviewer.py new file mode 100644 index 0000000..9677fbd --- /dev/null +++ b/pinaxcon/proposals/migrations/0006_conferencespeaker_reviewer.py @@ -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'), + ), + ] diff --git a/pinaxcon/proposals/models.py b/pinaxcon/proposals/models.py index 004360f..6229c73 100644 --- a/pinaxcon/proposals/models.py +++ b/pinaxcon/proposals/models.py @@ -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 " From 895b8cc9c4ba30af4a23af6532fedcb036610556 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 15 Nov 2017 17:29:50 -0800 Subject: [PATCH 02/24] Adds monkey patch of schedule --- pinaxcon/monkey_patch.py | 64 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index 64e7b3b..f6252de 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -1,4 +1,5 @@ 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,71 @@ 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 == "keynote": + update_keynote(request, slot_data) + else: + pass + + return schedule + + def update_presentation(request, slot_data, presentation): + try: + slot_data["reviewer"] = ( + 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["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", + slot_data["description"] = "Keynote presentation from North Bay Python 2017" + slot_data["conf_url"] = "https://2017.northbaypython.org" + slot_data["cancelled"] = False, + slot_data["reviewer"] = "" + slot_data["licence"] = "CC BY-SA" + slot_data["twitter_id"] = author_twitter_id + slot_data["released"] = True + + sv._schedule_json = schedule_json From 005c82229e746d7377db4e22b791222581642e26 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 15 Nov 2017 17:32:07 -0800 Subject: [PATCH 03/24] oops --- pinaxcon/monkey_patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index f6252de..47935d5 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -50,7 +50,7 @@ def patch_conference_schedule(): presentation = slot.content if presentation is not None: update_presentation(request, slot_data, presentation) - elif slot.kind.label == "keynote": + elif slot.kind.label.lower() == "keynote": update_keynote(request, slot_data) else: pass From 990027e0c75d5c7280f0ee137ffa9ac0e9f70f98 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 15 Nov 2017 17:33:48 -0800 Subject: [PATCH 04/24] =?UTF-8?q?chris=20can=E2=80=99t=20write=20american?= =?UTF-8?q?=20very=20well?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pinaxcon/monkey_patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index 47935d5..72f8c14 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -89,7 +89,7 @@ def patch_conference_schedule(): slot_data["conf_url"] = "https://2017.northbaypython.org" slot_data["cancelled"] = False, slot_data["reviewer"] = "" - slot_data["licence"] = "CC BY-SA" + slot_data["license"] = "CC BY-SA" slot_data["twitter_id"] = author_twitter_id slot_data["released"] = True From b380de1236054a256f557b1379f148defb4a31bc Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 15 Nov 2017 17:57:36 -0800 Subject: [PATCH 05/24] =?UTF-8?q?carl=20wants=20=E2=80=9Creviewer*s*?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pinaxcon/monkey_patch.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index 72f8c14..b41d4ef 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -59,7 +59,7 @@ def patch_conference_schedule(): def update_presentation(request, slot_data, presentation): try: - slot_data["reviewer"] = ( + slot_data["reviewers"] = ( presentation.speaker.conferencespeaker.reviewer if request.user.is_staff else ["redacted"] ) @@ -88,7 +88,7 @@ def patch_conference_schedule(): slot_data["description"] = "Keynote presentation from North Bay Python 2017" slot_data["conf_url"] = "https://2017.northbaypython.org" slot_data["cancelled"] = False, - slot_data["reviewer"] = "" + slot_data["reviewers"] = "" slot_data["license"] = "CC BY-SA" slot_data["twitter_id"] = author_twitter_id slot_data["released"] = True From bf1711ac663b7dcc7c060d635222bcfa8ecc0345 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 15 Nov 2017 18:18:56 -0800 Subject: [PATCH 06/24] fixes stray comma --- pinaxcon/monkey_patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index b41d4ef..300e111 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -84,7 +84,7 @@ def patch_conference_schedule(): slot_data["contact"] = [ author_email ] if request.user.is_staff else ["redacted"] - slot_data["abstract"] = "Keynote presentation from North Bay Python 2017", + slot_data["abstract"] = "Keynote presentation from North Bay Python 2017" slot_data["description"] = "Keynote presentation from North Bay Python 2017" slot_data["conf_url"] = "https://2017.northbaypython.org" slot_data["cancelled"] = False, From 9f47835763a2b1f935fae10d94a7404fe91acc72 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 15 Nov 2017 18:22:39 -0800 Subject: [PATCH 07/24] and another --- pinaxcon/monkey_patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index 300e111..692ba96 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -87,7 +87,7 @@ def patch_conference_schedule(): slot_data["abstract"] = "Keynote presentation from North Bay Python 2017" slot_data["description"] = "Keynote presentation from North Bay Python 2017" slot_data["conf_url"] = "https://2017.northbaypython.org" - slot_data["cancelled"] = False, + slot_data["cancelled"] = False slot_data["reviewers"] = "" slot_data["license"] = "CC BY-SA" slot_data["twitter_id"] = author_twitter_id From aba70cc961f15e66ad0b158d1984bca8a2385b27 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Fri, 17 Nov 2017 16:23:54 -0800 Subject: [PATCH 08/24] more schedule monkey patching --- pinaxcon/monkey_patch.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index 692ba96..e8e1603 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -52,6 +52,8 @@ def patch_conference_schedule(): update_presentation(request, slot_data, presentation) elif slot.kind.label.lower() == "keynote": update_keynote(request, slot_data) + elif slot.kind.label.lower() == "housekeeping": + update_keynote(request, slot_data) else: pass @@ -80,12 +82,13 @@ def patch_conference_schedule(): 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" - slot_data["description"] = "Keynote presentation from North Bay Python 2017" + 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"] = "" @@ -93,4 +96,11 @@ def patch_conference_schedule(): slot_data["twitter_id"] = author_twitter_id slot_data["released"] = True + def update_housekeeping(request, slot_data): + slot_data["authors"] = ["North Bay Python"] + slot_data["contact"] = [ + "spam@northbaypython.org" + ] if request.user.is_staff else ["redacted"] + + sv._schedule_json = schedule_json From ddfa3a4fbdf86d070244a49312d6d256710027f0 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Fri, 17 Nov 2017 16:26:41 -0800 Subject: [PATCH 09/24] fixes an oops --- pinaxcon/monkey_patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index e8e1603..a614b93 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -53,7 +53,7 @@ def patch_conference_schedule(): elif slot.kind.label.lower() == "keynote": update_keynote(request, slot_data) elif slot.kind.label.lower() == "housekeeping": - update_keynote(request, slot_data) + update_housekeeping(request, slot_data) else: pass From fb79f5d0c2c6a9b7ccef14e81d772073dbb809bb Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Fri, 17 Nov 2017 16:31:20 -0800 Subject: [PATCH 10/24] Fix for video titles --- pinaxcon/monkey_patch.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py index a614b93..ca0f403 100644 --- a/pinaxcon/monkey_patch.py +++ b/pinaxcon/monkey_patch.py @@ -97,7 +97,6 @@ def patch_conference_schedule(): slot_data["released"] = True def update_housekeeping(request, slot_data): - slot_data["authors"] = ["North Bay Python"] slot_data["contact"] = [ "spam@northbaypython.org" ] if request.user.is_staff else ["redacted"] From 2501108e7e5df595e655dba0145db06a4230dcde Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer <_@chrisjrn.com> Date: Tue, 21 Nov 2017 07:35:41 -0800 Subject: [PATCH 11/24] Update homepage.html --- pinaxcon/templates/static_pages/homepage.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/templates/static_pages/homepage.html b/pinaxcon/templates/static_pages/homepage.html index 8fe7d51..d957d42 100644 --- a/pinaxcon/templates/static_pages/homepage.html +++ b/pinaxcon/templates/static_pages/homepage.html @@ -138,7 +138,7 @@ From a0422f0e84339eb5e3ba124dbffd33588eeacee2 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Fri, 24 Nov 2017 15:01:38 -0800 Subject: [PATCH 12/24] Adds a couple of template tags --- pinaxcon/templatetags/nbpy_tags.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pinaxcon/templatetags/nbpy_tags.py b/pinaxcon/templatetags/nbpy_tags.py index e5ccdaf..e3f51d8 100644 --- a/pinaxcon/templatetags/nbpy_tags.py +++ b/pinaxcon/templatetags/nbpy_tags.py @@ -1,6 +1,7 @@ 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,26 @@ 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): + + tokens = name.split() + even_split = int((len(tokens) + 1) / 2) # Round up. + + return { + "first" : " ".join(tokens[:even_split]), + "last" : " ".join(tokens[even_split:]), + } + + +@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 From ed3d4e76616c1a50bafee7a540bec945e1db6a7e Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Fri, 24 Nov 2017 15:55:12 -0800 Subject: [PATCH 13/24] Fix for e-mail --- Procfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Procfile b/Procfile index e60f4f0..a69b2a6 100644 --- a/Procfile +++ b/Procfile @@ -1 +1 @@ -web: gunicorn pinaxcon.wsgi --log-file - +web: gunicorn pinaxcon.wsgi --timeout 300 --log-file - From 139b9ea8d0647f56f09f04fc8774f1d2b47a9664 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Fri, 24 Nov 2017 16:00:12 -0800 Subject: [PATCH 14/24] Use django email log --- pinaxcon/settings.py | 5 ++++- requirements/base.txt | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pinaxcon/settings.py b/pinaxcon/settings.py index ed450c6..ef557aa 100644 --- a/pinaxcon/settings.py +++ b/pinaxcon/settings.py @@ -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", "") diff --git a/requirements/base.txt b/requirements/base.txt index 94f429e..a5d6b4e 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -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 From 4718fed8fb7815d7bf3df90f5db8162d58cb5e96 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Fri, 24 Nov 2017 16:13:44 -0800 Subject: [PATCH 15/24] Reset timeout --- Procfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Procfile b/Procfile index a69b2a6..50e3a4b 100644 --- a/Procfile +++ b/Procfile @@ -1 +1 @@ -web: gunicorn pinaxcon.wsgi --timeout 300 --log-file - +web: gunicorn pinaxcon.wsgi --timeout 30 --log-file - From d3decadad5bddf58fc474aef0a67fb42bb4545f1 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:02:28 -0800 Subject: [PATCH 16/24] Adds badges --- pinaxcon/templates/registrasion/badge.svg | 167 +------- .../templates/registrasion/badge_outer.svg | 368 ++++++++++++++++++ pinaxcon/templatetags/nbpy_tags.py | 36 +- 3 files changed, 413 insertions(+), 158 deletions(-) create mode 100644 pinaxcon/templates/registrasion/badge_outer.svg diff --git a/pinaxcon/templates/registrasion/badge.svg b/pinaxcon/templates/registrasion/badge.svg index 499ac6d..162e096 100644 --- a/pinaxcon/templates/registrasion/badge.svg +++ b/pinaxcon/templates/registrasion/badge.svg @@ -1,158 +1,13 @@ - - +{% spaceless %} - +{% 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 %} - - - - - - - image/svg+xml - - - - - - - {{ user.attendee.attendeeprofilebase.attendeeprofile.name }}{{ user.attendee.attendeeprofilebase.attendeeprofile.company }}{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_1 }}{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_2 }}{% if user.attendee.attendeeprofilebase.attendeeprofile.of_legal_age %}18+?{% else %}MINOR{% endif %}DINNER: {{ dinner_count }}BREAKFAST: {{ breakfast_count }}TICKET: {% for ticket in ticket %}{{ ticket.product.name }}{% endfor %} - - - +{% with name1=split_name.first name2=split_name.last affiliation1=split_affiliation.first affiliation2=split_affiliation.last %} + {% include "registrasion/badge_outer.svg" %} +{% endwith %} + +{% endspaceless %} diff --git a/pinaxcon/templates/registrasion/badge_outer.svg b/pinaxcon/templates/registrasion/badge_outer.svg new file mode 100644 index 0000000..2f2d3c2 --- /dev/null +++ b/pinaxcon/templates/registrasion/badge_outer.svg @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + {{ name1 }}{{ name2 }} + {{ affiliation1 }}{{ affiliation2 }} + + + + + + + + + + + {{ name1 }}{{ name2 }} + {{ affiliation1 }}{{ affilitaion2 }} + + + + diff --git a/pinaxcon/templatetags/nbpy_tags.py b/pinaxcon/templatetags/nbpy_tags.py index e3f51d8..9228dab 100644 --- a/pinaxcon/templatetags/nbpy_tags.py +++ b/pinaxcon/templatetags/nbpy_tags.py @@ -48,16 +48,48 @@ def donation_income(context, invoice): # TODO: include van/de/van der/de la/etc etc etc @register.simple_tag -def name_split(name): +def name_split(name, split_characters=None): tokens = name.split() - even_split = int((len(tokens) + 1) / 2) # Round up. + 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) + print f + return f + + + +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): From aa3770ea23fdd9e903a2835fc7bbd281904bd729 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:03:10 -0800 Subject: [PATCH 17/24] oops --- pinaxcon/templatetags/nbpy_tags.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pinaxcon/templatetags/nbpy_tags.py b/pinaxcon/templatetags/nbpy_tags.py index 9228dab..21dce20 100644 --- a/pinaxcon/templatetags/nbpy_tags.py +++ b/pinaxcon/templatetags/nbpy_tags.py @@ -64,7 +64,6 @@ def name_split(name, split_characters=None): @register.simple_tag def company_split(name): f = name_split(name, 18) - print f return f From 1b1d7c223d251e6d1f40ca5e66dc2c74c372f671 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:05:59 -0800 Subject: [PATCH 18/24] one more oops --- pinaxcon/templates/registrasion/badge_outer.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/templates/registrasion/badge_outer.svg b/pinaxcon/templates/registrasion/badge_outer.svg index 2f2d3c2..c6477aa 100644 --- a/pinaxcon/templates/registrasion/badge_outer.svg +++ b/pinaxcon/templates/registrasion/badge_outer.svg @@ -361,7 +361,7 @@ 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="tspan4467">{{ affilitaion2 }} + id="tspan4467">{{ affiliation1 }} From 29e3377eaffdc66e1250d6f89774d432b3c1f516 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:07:43 -0800 Subject: [PATCH 19/24] *facepalm* --- pinaxcon/templates/registrasion/badge_outer.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/templates/registrasion/badge_outer.svg b/pinaxcon/templates/registrasion/badge_outer.svg index c6477aa..73b872a 100644 --- a/pinaxcon/templates/registrasion/badge_outer.svg +++ b/pinaxcon/templates/registrasion/badge_outer.svg @@ -361,7 +361,7 @@ 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="tspan4467">{{ affiliation1 }} + id="tspan4467">{{ affiliation2 }} From 27428eeb59ec3ddd002df125fc1f12577883890b Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:22:32 -0800 Subject: [PATCH 20/24] Adds "specials" --- pinaxcon/templates/registrasion/badge.svg | 1 + .../templates/registrasion/badge_outer.svg | 68 +++++++++++++------ pinaxcon/templatetags/nbpy_tags.py | 15 ++++ 3 files changed, 64 insertions(+), 20 deletions(-) diff --git a/pinaxcon/templates/registrasion/badge.svg b/pinaxcon/templates/registrasion/badge.svg index 162e096..941a414 100644 --- a/pinaxcon/templates/registrasion/badge.svg +++ b/pinaxcon/templates/registrasion/badge.svg @@ -5,6 +5,7 @@ {% ticket_type as ticket %} {% affiliation ticket user as aff %} {% company_split aff as split_affiliation %} +{% special user as special %} {% with name1=split_name.first name2=split_name.last affiliation1=split_affiliation.first affiliation2=split_affiliation.last %} {% include "registrasion/badge_outer.svg" %} diff --git a/pinaxcon/templates/registrasion/badge_outer.svg b/pinaxcon/templates/registrasion/badge_outer.svg index 73b872a..e69c328 100644 --- a/pinaxcon/templates/registrasion/badge_outer.svg +++ b/pinaxcon/templates/registrasion/badge_outer.svg @@ -200,7 +200,7 @@ x1="242.77402" gradientTransform="matrix(1.7944572,0,0,0.86754101,-266.2916,412.78825)" gradientUnits="userSpaceOnUse" - id="linearGradient4469" + id="linearGradient4610" xlink:href="#linearGradient8426" /> {{ affiliation2 }} + {{ special }} + transform="matrix(-1,0,0,-1,328.65539,2102.4508)" + id="g4574"> + 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" /> + id="path4584" /> + style="opacity:1;fill:url(#linearGradient4612);fill-opacity:1;stroke:#000000;stroke-width:4.54716158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4590" /> {{ name1 }}{{ name2 }} + id="tspan4596">{{ name2 }} {{ affiliation1 }}{{ affiliation2 }} + id="tspan4602">{{ affiliation2 }} + {{ special }} diff --git a/pinaxcon/templatetags/nbpy_tags.py b/pinaxcon/templatetags/nbpy_tags.py index 21dce20..e27b426 100644 --- a/pinaxcon/templatetags/nbpy_tags.py +++ b/pinaxcon/templatetags/nbpy_tags.py @@ -67,6 +67,21 @@ def company_split(name): return f +@register.simple_tag(takes_context=True) +def special(context, user): + organiser = user.groups.filter(name='Conference organisers').exists() + speaker = user.speaker_profile.presentations.count() != 0 + volunteer = "Volunteer" in ticket_type(context) + + if organiser: + return "Organizer" + elif speaker: + return "Speaker" + elif volunteer: + return "Staff" + else: + return "" + CLEARED = set([ "BeeWare Project", From 1aafae38434b6aee7949e924b2aa042187465d06 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:24:11 -0800 Subject: [PATCH 21/24] Speaker profile may be none --- pinaxcon/templatetags/nbpy_tags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/templatetags/nbpy_tags.py b/pinaxcon/templatetags/nbpy_tags.py index e27b426..9ce9559 100644 --- a/pinaxcon/templatetags/nbpy_tags.py +++ b/pinaxcon/templatetags/nbpy_tags.py @@ -70,7 +70,7 @@ def company_split(name): @register.simple_tag(takes_context=True) def special(context, user): organiser = user.groups.filter(name='Conference organisers').exists() - speaker = user.speaker_profile.presentations.count() != 0 + speaker = if user.speaker_profile and user.speaker_profile.presentations.count() != 0 volunteer = "Volunteer" in ticket_type(context) if organiser: From 787a42952cc0f7f364eaac443da79dc6d919e305 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:24:28 -0800 Subject: [PATCH 22/24] no really --- pinaxcon/templatetags/nbpy_tags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/templatetags/nbpy_tags.py b/pinaxcon/templatetags/nbpy_tags.py index 9ce9559..91a705b 100644 --- a/pinaxcon/templatetags/nbpy_tags.py +++ b/pinaxcon/templatetags/nbpy_tags.py @@ -70,7 +70,7 @@ def company_split(name): @register.simple_tag(takes_context=True) def special(context, user): organiser = user.groups.filter(name='Conference organisers').exists() - speaker = if user.speaker_profile and user.speaker_profile.presentations.count() != 0 + speaker = if hasattr(user, "speaker_profile") and user.speaker_profile.presentations.count() != 0 volunteer = "Volunteer" in ticket_type(context) if organiser: From 1355c0ba83d393f9654db5d241644a2b9a00ffab Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:26:05 -0800 Subject: [PATCH 23/24] sigh --- pinaxcon/templatetags/nbpy_tags.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pinaxcon/templatetags/nbpy_tags.py b/pinaxcon/templatetags/nbpy_tags.py index 91a705b..9c99a4f 100644 --- a/pinaxcon/templatetags/nbpy_tags.py +++ b/pinaxcon/templatetags/nbpy_tags.py @@ -70,7 +70,10 @@ def company_split(name): @register.simple_tag(takes_context=True) def special(context, user): organiser = user.groups.filter(name='Conference organisers').exists() - speaker = if hasattr(user, "speaker_profile") and user.speaker_profile.presentations.count() != 0 + try: + speaker = user.speaker_profile.presentations.count() != 0 + except: + speaker = False volunteer = "Volunteer" in ticket_type(context) if organiser: From 2e9b94983d402098a652e933ec0a28df84f7c8f6 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Tue, 28 Nov 2017 18:26:42 -0800 Subject: [PATCH 24/24] wat --- pinaxcon/templatetags/nbpy_tags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinaxcon/templatetags/nbpy_tags.py b/pinaxcon/templatetags/nbpy_tags.py index 9c99a4f..4bbf320 100644 --- a/pinaxcon/templatetags/nbpy_tags.py +++ b/pinaxcon/templatetags/nbpy_tags.py @@ -72,7 +72,7 @@ def special(context, user): organiser = user.groups.filter(name='Conference organisers').exists() try: speaker = user.speaker_profile.presentations.count() != 0 - except: + except Exception: speaker = False volunteer = "Volunteer" in ticket_type(context)