Files
@ 1ba1a97c4555
Branch filter:
Location: symposion_app/pinaxcon/templatetags/pyconau2017_tags.py - annotation
1ba1a97c4555
2.7 KiB
text/x-python
move templates out of vendor specific locations
Lets not kid ourselves. The whole apps templates are client specific.
Lets just remove that and not think it isn't.
Lets not kid ourselves. The whole apps templates are client specific.
Lets just remove that and not think it isn't.
8d68cca01f87 8d68cca01f87 a07dbe58c127 a07dbe58c127 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 39b556b7ac4f 39b556b7ac4f 39b556b7ac4f 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 39b556b7ac4f 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 8d68cca01f87 a07dbe58c127 39b556b7ac4f a07dbe58c127 a07dbe58c127 a07dbe58c127 a07dbe58c127 2fe3bbfbdd3d 39b556b7ac4f | import hashlib
import os
from decimal import Decimal
from django import template
from django.conf import settings
from django.contrib.staticfiles.templatetags import staticfiles
from easy_thumbnails.files import get_thumbnailer
from symposion.conference import models as conference_models
from symposion.schedule.models import Track
CONFERENCE_ID = settings.CONFERENCE_ID
register = template.Library()
@register.assignment_tag()
def classname(ob):
return ob.__class__.__name__
@register.simple_tag(takes_context=True)
def can_manage(context, proposal):
return proposal_permission(context, "manage", proposal)
@register.simple_tag(takes_context=True)
def can_review(context, proposal):
return proposal_permission(context, "review", proposal)
def proposal_permission(context, permname, proposal):
slug = proposal.kind.section.slug
perm = "reviews.can_%s_%s" % (permname, slug)
return context.request.user.has_perm(perm)
# {% load statictags %}{% static 'pyconau2017/images/svgs/illustrations/' %}{{ illustration }}
@register.simple_tag(takes_context=False)
def illustration(name):
return staticfiles.static('pyconau2017/images/svgs/illustrations/') + name
@register.simple_tag(takes_context=True)
def speaker_photo(context, speaker, size):
''' Provides the speaker profile, or else fall back to libravatar or gravatar. '''
if speaker.photo:
thumbnailer = get_thumbnailer(speaker.photo)
thumbnail_options = {'crop': True, 'size': (size, size)}
thumbnail = thumbnailer.get_thumbnail(thumbnail_options)
return thumbnail.url
else:
email = speaker.user.email.encode("utf-8")
md5sum = hashlib.md5(email.strip().lower()).hexdigest()
fallback_image = ("https://2017.pycon-au.org/site_media/static"
"/pyconau23017/images/speaker-fallback-devil.jpg")
url = "https://secure.gravatar.com/avatar/%s?s=%d&d=%s" % (md5sum, size, fallback_image)
return url
@register.simple_tag()
def define(value):
return value
@register.simple_tag()
def presentation_bg_number(presentation, count):
return sum(ord(i) for i in presentation.title) % count
@register.filter()
def gst(amount):
two_places = Decimal(10) ** -2
return Decimal(amount / 11).quantize(two_places)
@register.simple_tag()
def conference_name():
return conference_models.Conference.objects.get(id=CONFERENCE_ID).title
@register.filter()
def trackname(room, day):
try:
track_name = room.track_set.get(day=day).name
except Track.DoesNotExist:
track_name = None
return track_name
@register.simple_tag()
def sponsor_thumbnail(sponsor_logo):
if sponsor_logo is not None:
if sponsor_logo.upload:
return sponsor_logo.upload.url
return ""
|