]> git.openstreetmap.org Git - osqa.git/blob - forum/templatetags/question_list_tags.py
initial import
[osqa.git] / forum / templatetags / question_list_tags.py
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
5 \r
6 register = template.Library()\r
7 \r
8 @register.inclusion_tag('question_list/item.html')\r
9 def question_list_item(question):\r
10     return {'question': question}\r
11 \r
12 @register.inclusion_tag('question_list/sort_tabs.html')\r
13 def question_sort_tabs(sort_context):\r
14     return sort_context\r
15 \r
16 @register.inclusion_tag('question_list/related_tags.html')\r
17 def question_list_related_tags(questions):\r
18     if len(questions):\r
19         return {'tags': Tag.objects.filter(questions__id__in=[q.id for q in questions]).distinct()}\r
20     else:\r
21         return {'tags': False}\r
22 \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
26 \r
27     if request.user.is_authenticated():\r
28         pt = MarkedTag.objects.filter(user=request.user)\r
29         return {\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
33         }\r
34     else:\r
35         return {'user_authenticated': False}\r
36 \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
45 \r
46     return context\r
47 \r
48 @register.inclusion_tag('question_list/title.html', takes_context=True)\r
49 def question_list_title(context):\r
50     return context