from django.utils.translation import ugettext as _\r
from django.utils.safestring import mark_safe\r
from forum.models import Tag, MarkedTag\r
+from forum.templatetags import argument_parser\r
\r
register = template.Library()\r
\r
-@register.inclusion_tag('question_list/item.html')\r
-def question_list_item(question):\r
- return {'question': question}\r
+class QuestionItemNode(template.Node):\r
+ template = template.loader.get_template('question_list/item.html')\r
\r
-@register.inclusion_tag('question_list/item_extended.html')\r
-def question_list_item_extended(question):\r
- return {'question': question}\r
+ def __init__(self, question, options):\r
+ self.question = template.Variable(question)\r
+ self.options = options\r
+\r
+ def render(self, context):\r
+ return self.template.render(template.Context({\r
+ 'question': self.question.resolve(context),\r
+ 'favorite_count': self.options.get('favorite_count', 'no') == 'yes',\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.inclusion_tag('question_list/sort_tabs.html')\r
def question_sort_tabs(sort_context):\r
@register.inclusion_tag('question_list/related_tags.html')\r
def question_list_related_tags(questions):\r
if len(questions):\r
- return {'tags': Tag.objects.filter(questions__id__in=[q.id for q in questions]).distinct()}\r
+ return {'tags': Tag.objects.filter(nodes__id__in=[q.id for q in questions]).distinct()}\r
else:\r
return {'tags': False}\r
\r