Commits

limpbrains committed 8d2395f

templatetags

Comments (0)

Files changed (2)

cmsplugin_news/templatetags/__init__.py

Empty file added.

cmsplugin_news/templatetags/cms_news_tags.py

+from django import template
+from models import News
+import settings
+
+register = template.Library()
+
+class LastNewsNode(template.Node):
+    def __init__(self, varname, count):
+        self.varname = varname
+        self.count = count
+
+    def render(self, context):
+    	news = News.published.all()[:self.count]
+        context[self.varname] = news
+        return ''
+
+def last_news(parser, token):
+    tokens = token.split_contents()
+    len_tokens = len(tokens)
+    if len_tokens < 4:
+        raise template.TemplateSyntaxError, "'%s' tag requires three arguments" % tokens[0]
+    if tokens[2] != 'as':
+        raise template.TemplateSyntaxError, "Second argument to '%s' tag must be 'as'" % tokens[0]
+    return LastNewsNode(tokens[3], tokens[1])
+last_news = register.tag(last_news)