Files
@ 91ae3de6dfc8
Branch filter:
Location: symposion_app/symposion/sponsorship/templatetags/sponsorship_tags.py - annotation
91ae3de6dfc8
2.2 KiB
text/x-python
Merge pull request #75 from miurahr/proposal_status
Display proposal result status in proposal admin change lists
Display proposal result status in proposal admin change lists
46e38bc75841 46e38bc75841 c9e600e42cba c9e600e42cba 46e38bc75841 46e38bc75841 46e38bc75841 46e38bc75841 46e38bc75841 46e38bc75841 36ab6d599ffc 46e38bc75841 46e38bc75841 46e38bc75841 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 36ab6d599ffc e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 46e38bc75841 36ab6d599ffc 46e38bc75841 ef2624698b3c e4e7b890a2a6 e4e7b890a2a6 36ab6d599ffc 36ab6d599ffc 36ab6d599ffc e4e7b890a2a6 36ab6d599ffc 36ab6d599ffc 46e38bc75841 46e38bc75841 46e38bc75841 46e38bc75841 e4e7b890a2a6 36ab6d599ffc e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 36ab6d599ffc e4e7b890a2a6 e4e7b890a2a6 36ab6d599ffc e4e7b890a2a6 ef2624698b3c ef2624698b3c e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 46e38bc75841 46e38bc75841 46e38bc75841 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 46e38bc75841 46e38bc75841 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 e4e7b890a2a6 | from django import template
from symposion.conference.models import current_conference
from symposion.sponsorship.models import Sponsor, SponsorLevel
register = template.Library()
class SponsorsNode(template.Node):
@classmethod
def handle_token(cls, parser, token):
bits = token.split_contents()
if len(bits) == 3 and bits[1] == "as":
return cls(bits[2])
elif len(bits) == 4 and bits[2] == "as":
return cls(bits[3], bits[1])
else:
raise template.TemplateSyntaxError("%r takes 'as var' or 'level as var'" % bits[0])
def __init__(self, context_var, level=None):
if level:
self.level = template.Variable(level)
else:
self.level = None
self.context_var = context_var
def render(self, context):
conference = current_conference()
if self.level:
level = self.level.resolve(context)
queryset = Sponsor.objects.filter(
level__conference=conference, level__name__iexact=level, active=True)\
.order_by("added")
else:
queryset = Sponsor.objects.filter(level__conference=conference, active=True)\
.order_by("level__order", "added")
context[self.context_var] = queryset
return u""
class SponsorLevelNode(template.Node):
@classmethod
def handle_token(cls, parser, token):
bits = token.split_contents()
if len(bits) == 3 and bits[1] == "as":
return cls(bits[2])
else:
raise template.TemplateSyntaxError("%r takes 'as var'" % bits[0])
def __init__(self, context_var):
self.context_var = context_var
def render(self, context):
conference = current_conference()
context[self.context_var] = SponsorLevel.objects.filter(conference=conference)
return u""
@register.tag
def sponsors(parser, token):
"""
{% sponsors as all_sponsors %}
or
{% sponsors "gold" as gold_sponsors %}
"""
return SponsorsNode.handle_token(parser, token)
@register.tag
def sponsor_levels(parser, token):
"""
{% sponsor_levels as levels %}
"""
return SponsorLevelNode.handle_token(parser, token)
|