]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/templatetags/question_list_tags.py
OSQA-809, Include question summaries in question and answers views, wrap that in...
[osqa.git] / forum / templatetags / question_list_tags.py
index dc735f3c508c47633f952bdc7b57ae829946954d..2f2aef9cf8c58948a57c0922ec68ee40a5b04344 100644 (file)
@@ -17,15 +17,35 @@ class QuestionItemNode(template.Node):
     def render(self, context):\r
         return self.template.render(template.Context({\r
             'question': self.question.resolve(context),\r
+            'question_summary': self.options.get('question_summary', 'no' ) == 'yes',\r
             'favorite_count': self.options.get('favorite_count', 'no') == 'yes',\r
             'signature_type': self.options.get('signature_type', 'lite'),\r
         }))\r
 \r
+class SubscriptionItemNode(template.Node):\r
+    template = template.loader.get_template('question_list/subscription_item.html')\r
+\r
+    def __init__(self, subscription, question, options):\r
+        self.question = template.Variable(question)\r
+        self.subscription = template.Variable(subscription)\r
+        self.options = options\r
+\r
+    def render(self, context):\r
+        return self.template.render(template.Context({\r
+            'question': self.question.resolve(context),\r
+            'subscription': self.subscription.resolve(context),\r
+            'signature_type': self.options.get('signature_type', 'lite'),\r
+        }))\r
+\r
 @register.tag\r
 def question_list_item(parser, token):\r
     tokens = token.split_contents()[1:]\r
     return QuestionItemNode(tokens[0], argument_parser(tokens[1:]))\r
-    \r
+\r
+@register.tag\r
+def subscription_list_item(parser, token):\r
+    tokens = token.split_contents()[1:]\r
+    return SubscriptionItemNode(tokens[0], tokens[1], argument_parser(tokens[2:]))\r
 \r
 @register.inclusion_tag('question_list/sort_tabs.html')\r
 def question_sort_tabs(sort_context):\r
@@ -46,28 +66,16 @@ def question_list_related_tags(questions):
 @register.inclusion_tag('question_list/tag_selector.html', takes_context=True)\r
 def tag_selector(context):\r
     request = context['request']\r
+    show_interesting_tags = settings.SHOW_INTERESTING_TAGS_BOX\r
 \r
     if request.user.is_authenticated():\r
         pt = MarkedTag.objects.filter(user=request.user)\r
         return {\r
+            'request' : request,\r
             "interesting_tag_names": pt.filter(reason='good').values_list('tag__name', flat=True),\r
             'ignored_tag_names': pt.filter(reason='bad').values_list('tag__name', flat=True),\r
             'user_authenticated': True,\r
+            'show_interesting_tags' : show_interesting_tags,\r
         }\r
     else:\r
-        return {'user_authenticated': False}\r
-\r
-@register.inclusion_tag('question_list/count.html', takes_context=True)\r
-def question_list_count(context):\r
-    context['sort_description'] = mark_safe({\r
-        'latest': _('<strong>Newest</strong> questions are shown first. '),\r
-        'active': _('Questions are sorted by the <strong>time of last update</strong>.'),\r
-        'hottest': _('Questions sorted by <strong>number of responses</strong>.'),\r
-        'mostvoted': _('Questions are sorted by the <strong>number of votes</strong>.')\r
-    }.get(context['request'].utils.sort_method('latest'), ''))\r
-\r
-    return context\r
-\r
-@register.inclusion_tag('question_list/title.html', takes_context=True)\r
-def question_list_title(context):\r
-    return context
\ No newline at end of file
+        return { 'request' : request, 'user_authenticated': False, 'show_interesting_tags' : show_interesting_tags }\r