From c3b26df0da254d301318d32e75011ad0c77eecd7 Mon Sep 17 00:00:00 2001 From: Jonathan Hensley Date: Thu, 1 Oct 2009 15:51:13 -0400 Subject: [PATCH 1/4] added views --- categories/views.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/categories/views.py b/categories/views.py index e69de29..baec0f1 100644 --- a/categories/views.py +++ b/categories/views.py @@ -0,0 +1,17 @@ +from django.shortcuts import get_object_or_404, render_to_response +from django.template import RequestContext +from categories.models import Category +from django.views.decorators.cache import cache_page + +def category_detail(request, slug, with_stories=False, + template_name='categories/category_detail.html'): + context = {} + category = get_object_or_404(Category, + slug__iexact=slug) + + context['category'] = category + + return render_to_response(template_name, + context, + context_instance=RequestContext(request) + ) From 16ad8057e3d7f414931acaca5abc9dde50a0d63a Mon Sep 17 00:00:00 2001 From: Jonathan Hensley Date: Thu, 1 Oct 2009 15:52:30 -0400 Subject: [PATCH 2/4] cats --- categories/urls.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/categories/urls.py b/categories/urls.py index 84ff58b..8a6bb22 100644 --- a/categories/urls.py +++ b/categories/urls.py @@ -9,9 +9,7 @@ urlpatterns = patterns('django.views.generic.list_detail', url( r'^$', 'object_list', categorytree_dict, name='categories_tree_list' ), - #url( - # r'^(?P[\w-]+)/$', 'object_detail', categorytree_dict, name='categories_tree' - #), +./ ) urlpatterns += patterns('categories.views', From 176edd7736f84513d4cc201265c2425d10741c1e Mon Sep 17 00:00:00 2001 From: Corey Oordt Date: Fri, 2 Oct 2009 11:50:25 -0400 Subject: [PATCH 3/4] Removed a strange typo --- categories/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/categories/urls.py b/categories/urls.py index 8a6bb22..194c715 100644 --- a/categories/urls.py +++ b/categories/urls.py @@ -9,7 +9,6 @@ urlpatterns = patterns('django.views.generic.list_detail', url( r'^$', 'object_list', categorytree_dict, name='categories_tree_list' ), -./ ) urlpatterns += patterns('categories.views', From e69cfe96277a3d160679202d9e25a05fd815b34f Mon Sep 17 00:00:00 2001 From: Jose Soares Date: Mon, 5 Oct 2009 15:07:11 -0400 Subject: [PATCH 4/4] Added a new templatetag to retrieve the top level categories --- categories/templatetags/category_tags.py | 31 +++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/categories/templatetags/category_tags.py b/categories/templatetags/category_tags.py index f5ff719..07255e2 100644 --- a/categories/templatetags/category_tags.py +++ b/categories/templatetags/category_tags.py @@ -102,4 +102,33 @@ def display_path_as_ul(category): cat = get_category(category) return {} - \ No newline at end of file + + +class TopLevelCategoriesNode(template.Node): + def __init__(self, varname): + self.varname = varname + + def render(self, context): + context[self.varname] = Category.objects.filter(parent=None).order_by('name') + return '' + + +def get_top_level_categories(parser, token): + """ + Retrives an alphabetical list of all the categories with with no parents. + + Syntax:: + + {% get_top_level_categories as categories %} + + Returns an list of categories + + """ + bits = token.contents.split() + if len(bits) != 3: + raise template.TemplateSyntaxError, "Tag %s must have 2 arguments." % bits[0] + if bits[1] != 'as': + raise template.TemplateSyntaxError, "First argyment must be 'as'." + return TopLevelCategoriesNode(bits[2]) + +register.tag(get_top_level_categories) \ No newline at end of file