Commits

limpbrains committed 8d2395f

templatetags

Comments (0)

Files changed (2)

Add a comment to this file

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)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.