1 from django import template
\r
2 from django.utils.translation import ugettext as _
\r
3 from django.utils.safestring import mark_safe
\r
4 from forum.models import Tag, MarkedTag
\r
6 register = template.Library()
\r
8 @register.inclusion_tag('question_list/item.html')
\r
9 def question_list_item(question):
\r
10 return {'question': question}
\r
12 @register.inclusion_tag('question_list/sort_tabs.html')
\r
13 def question_sort_tabs(sort_context):
\r
16 @register.inclusion_tag('question_list/related_tags.html')
\r
17 def question_list_related_tags(questions):
\r
19 return {'tags': Tag.objects.filter(questions__id__in=[q.id for q in questions]).distinct()}
\r
21 return {'tags': False}
\r
23 @register.inclusion_tag('question_list/tag_selector.html', takes_context=True)
\r
24 def tag_selector(context):
\r
25 request = context['request']
\r
27 if request.user.is_authenticated():
\r
28 pt = MarkedTag.objects.filter(user=request.user)
\r
30 "interesting_tag_names": pt.filter(reason='good').values_list('tag__name', flat=True),
\r
31 'ignored_tag_names': pt.filter(reason='bad').values_list('tag__name', flat=True),
\r
32 'user_authenticated': True,
\r
35 return {'user_authenticated': False}
\r
37 @register.inclusion_tag('question_list/count.html', takes_context=True)
\r
38 def question_list_count(context):
\r
39 context['sort_description'] = mark_safe({
\r
40 'latest': _('<strong>Newest</strong> questions are shown first. '),
\r
41 'active': _('Questions are sorted by the <strong>time of last update</strong>.'),
\r
42 'hottest': _('Questions sorted by <strong>number of responses</strong>.'),
\r
43 'mostvoted': _('Questions are sorted by the <strong>number of votes</strong>.')
\r
44 }.get(context['request'].utils.sort_method('latest'), ''))
\r
48 @register.inclusion_tag('question_list/title.html', takes_context=True)
\r
49 def question_list_title(context):
\r