Badges work by copy-pasting lca2017/pyconau2017 code around
WIP - Push for share
This commit is contained in:
parent
25bff81eab
commit
9ab075e51c
4 changed files with 4343 additions and 15 deletions
|
@ -30,10 +30,11 @@ else:
|
|||
|
||||
DATABASES = {}
|
||||
DATABASES['default'] = dj_database_url.config(conn_max_age=600)
|
||||
print(DATABASES)
|
||||
if DATABASES['default']['ENGINE'] == 'django.db.backends.mysql':
|
||||
DATABASES['default']['OPTIONS'] = {'charset': 'utf8mb4'}
|
||||
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
||||
EMAIL_HOST = os.environ.get('EMAIL_HOST', None)
|
||||
EMAIL_PORT = os.environ.get('EMAIL_PORT', 25)
|
||||
EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER', None)
|
||||
|
@ -69,6 +70,8 @@ saml2_contact = {
|
|||
|
||||
fail = False
|
||||
|
||||
BADGER_DEFAULT_SVG = 'registrasion/badge.svg'
|
||||
|
||||
if SECRET_KEY is None:
|
||||
print("FAILURE: You need to supply a DJANGO_SECRET_KEY "
|
||||
"environment variable")
|
||||
|
|
4279
pinaxcon/templates/registrasion/badge.svg
Normal file
4279
pinaxcon/templates/registrasion/badge.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 488 KiB |
|
@ -5,6 +5,7 @@ from django import template
|
|||
from django.conf import settings
|
||||
from django.contrib.staticfiles.templatetags import staticfiles
|
||||
from easy_thumbnails.files import get_thumbnailer
|
||||
from registrasion.templatetags import registrasion_tags
|
||||
from symposion.conference import models as conference_models
|
||||
from symposion.schedule.models import Track
|
||||
|
||||
|
@ -94,3 +95,47 @@ def trackname(room, day):
|
|||
except Track.DoesNotExist:
|
||||
track_name = None
|
||||
return track_name
|
||||
|
||||
@register.simple_tag(takes_context=True)
|
||||
def ticket_type(context):
|
||||
|
||||
# Default to purchased ticket type (only item from category 1)
|
||||
items = registrasion_tags.items_purchased(context, 1)
|
||||
|
||||
item = next(iter(items))
|
||||
name = item.product.name
|
||||
if name == "Conference Volunteer":
|
||||
return "Volunteer"
|
||||
elif name == "Conference Organiser":
|
||||
return "Organiser"
|
||||
else:
|
||||
ticket_type = name
|
||||
|
||||
|
||||
# Miniconfs are secion 2
|
||||
# General sessions are section 1
|
||||
|
||||
user = registrasion_tags.user_for_context(context)
|
||||
|
||||
if hasattr(user, "speaker_profile"):
|
||||
best = 0
|
||||
for presentation in user.speaker_profile.presentations.all():
|
||||
if presentation.section.id == 1:
|
||||
best = 1
|
||||
if best == 0 and presentation.section.id == 2:
|
||||
best = 2
|
||||
if best == 1:
|
||||
return "Speaker"
|
||||
elif best == 2:
|
||||
return "Miniconf Org"
|
||||
|
||||
if name == "Sponsor":
|
||||
return "Professional"
|
||||
elif name == "Fairy Penguin Sponsor":
|
||||
return "Professional"
|
||||
elif name == "Monday and Tuesday Only":
|
||||
return "Mon/Tue Only"
|
||||
|
||||
# Default to product type
|
||||
return ticket_type
|
||||
|
||||
|
|
29
vendor/registrasion/registrasion/views.py
vendored
29
vendor/registrasion/registrasion/views.py
vendored
|
@ -1115,30 +1115,31 @@ def _get_badge_template_name():
|
|||
|
||||
@user_passes_test(_staff_only)
|
||||
def badge(request, user_id):
|
||||
'''
|
||||
Renders a single user's badge (SVG).
|
||||
|
||||
This does little more than call Richard Jones' collate and svg_badge
|
||||
functions found in generate_badges.
|
||||
'''
|
||||
''' Renders a single user's badge (SVG). '''
|
||||
|
||||
user_id = int(user_id)
|
||||
user = User.objects.get(pk=user_id)
|
||||
|
||||
# This will fail spectacularly -- will put exception handling in later ...
|
||||
user_data = list(collate({'usernames': [user.username]}))[0]
|
||||
print(type(user))
|
||||
print(dir(user))
|
||||
print(user)
|
||||
|
||||
orig = etree.parse(_get_badge_template_name())
|
||||
tree = deepcopy(orig)
|
||||
root = tree.getroot()
|
||||
rendered = render_badge(user)
|
||||
response = HttpResponse(rendered)
|
||||
|
||||
svg_badge(root, user_data, 0)
|
||||
|
||||
response = HttpResponse(etree.tostring(root))
|
||||
response["Content-Type"] = "image/svg+xml"
|
||||
response["Content-Disposition"] = 'inline; filename="badge.svg"'
|
||||
return response
|
||||
|
||||
def render_badge(user):
|
||||
''' Renders a single user's badge. '''
|
||||
|
||||
data = {
|
||||
"user": user,
|
||||
}
|
||||
|
||||
t = loader.get_template('registrasion/badge.svg')
|
||||
return t.render(data)
|
||||
|
||||
def badges(request):
|
||||
'''
|
||||
|
|
Loading…
Reference in a new issue