5 from django import template
7 register = template.Library()
9 @register.filter(name='zip')
13 @register.inclusion_tag('includes/audio.html')
14 def audio(sound=None):
19 @register.inclusion_tag('episodes/resume.html', takes_context=True)
20 def episode_resume(context, date=None, model=None, klass=None):
24 'episode': context.get('episode'),
28 @register.inclusion_tag('episodes/inline.html', takes_context=True)
29 def episode_inline(context, date=None, klass=None):
32 'episode': context.get('episode'),
36 @register.inclusion_tag('emissions/detail.html', takes_context=True)
37 def emission_detail(context, date=None):
39 'emission': context.get('emission'),
40 'schedules': context.get('schedules'),
43 @register.inclusion_tag('includes/player.html', takes_context=False)
45 return {'unique': uuid.uuid4()}
47 @register.inclusion_tag('includes/metaNav.html', takes_context=False)
51 @register.inclusion_tag('news/inline.html', takes_context=False)
52 def news_inline(content=None, klass=None, logo=None):
61 def remove_tag_facet(url, facet):
62 facet = urllib2.quote(facet.encode('utf-8'), safe='')
63 return re.sub(r'&page=\d+', '', url.replace('&selected_facets=tags_exact:%s' % facet, ''))
66 def remove_category_facet(url, facet):
67 facet = urllib2.quote(facet.encode('utf-8'), safe='')
68 return re.sub(r'&page=\d+', '', url.replace('&selected_facets=categories_exact:%s' % facet, ''))
72 def append_tag_facet(url, facet):
73 facet = urllib2.quote(facet.encode('utf-8'), safe='')
74 return re.sub(r'&page=\d+', '', url + '&selected_facets=tags_exact:%s' % facet)
77 def append_category_facet(url, facet):
78 facet = urllib2.quote(facet.encode('utf-8'), safe='')
79 return re.sub(r'&page=\d+', '', url + '&selected_facets=categories_exact:%s' % facet)
83 def search_result_template(parser, token):
85 tag_name, result_str = token.split_contents()
87 raise template.TemplateSyntaxError("%r tag requires exactly one argument" % token.contents.split()[0])
88 return FormatSearchResultNode(result_str)
91 class FormatSearchResultNode(template.Node):
92 def __init__(self, result_str):
93 self.result_var = template.Variable(result_str)
95 def render(self, context):
96 result = self.result_var.resolve(context)
99 'emission': 'emissions',
100 'episode': 'episodes'
102 t = template.loader.get_template('%s/search_result.html' % dir_mapping.get(result.model_name))
103 return t.render(template.context.Context({'result': result}, autoescape=context.autoescape))