From 9a9f39db184fc0f7479d0ad7096376ecfc7b9666 Mon Sep 17 00:00:00 2001 From: Jose Soares Date: Mon, 20 Jul 2009 15:28:46 -0400 Subject: [PATCH 1/3] Added urls and views for category detail --- categories/urls.py | 12 ++++++------ categories/views.py | 32 +++++++++++++++++--------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/categories/urls.py b/categories/urls.py index 513f8ca..84ff58b 100644 --- a/categories/urls.py +++ b/categories/urls.py @@ -1,19 +1,19 @@ from django.conf.urls.defaults import * -from categories.models import * +from categories.models import Category categorytree_dict = { - 'queryset': CategoryTree.objects.all() + 'queryset': Category.objects.all() } 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' - ), + #url( + # r'^(?P[\w-]+)/$', 'object_detail', categorytree_dict, name='categories_tree' + #), ) urlpatterns += patterns('categories.views', - url(r'^(?P[\w-]+)/(?P[\w\-\/]+)/$', 'category_detail', name='categories_category'), + url(r'^(?P[\w-]+)/$', 'category_detail', {'with_stories': True}, name='categories_category'), ) \ No newline at end of file diff --git a/categories/views.py b/categories/views.py index 4ec49cb..bac592b 100644 --- a/categories/views.py +++ b/categories/views.py @@ -1,21 +1,23 @@ from django.shortcuts import get_object_or_404, render_to_response from django.template import RequestContext -from ellington.categories.models import * +from categories.models import Category +from stories.models import Story +from django.db.models import Q +from django.views.decorators.cache import cache_page -def category_detail(request, slug, category_slug): - """ - A detail view of a category. - - Templates: - :template:`categories/category_detail.html` - Context: - category - A :model:`categories.Category` object. - """ +def category_detail(request, slug, with_stories=False, + template_name='categories/category_detail.html'): + context = {} category = get_object_or_404(Category, - hierarchy__slug=slug, - slug_path="/%s" % category_slug) - return render_to_response('categories/category_detail.html', - {'category' : category}, + slug__iexact=slug) + + context['category'] = category + + if with_stories: + stories = Story.published.filter(Q(primary_category=category) | Q(categories__in=[category,])) + context['stories'] = stories + + return render_to_response(template_name, + context, context_instance=RequestContext(request) ) From 8bebe9bfc8b26f3677bff399af4d2d4487dd331b Mon Sep 17 00:00:00 2001 From: Jose Soares Date: Mon, 20 Jul 2009 15:37:52 -0400 Subject: [PATCH 2/3] Added template for category detail --- categories/templates/categories/category_detail.html | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 categories/templates/categories/category_detail.html diff --git a/categories/templates/categories/category_detail.html b/categories/templates/categories/category_detail.html new file mode 100644 index 0000000..e69de29 From b48f5d2c0f3eb6c31c9077913e21335a789db7ec Mon Sep 17 00:00:00 2001 From: Corey Oordt Date: Tue, 21 Jul 2009 08:57:35 -0400 Subject: [PATCH 3/3] Added to the gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index d16f702..33bff60 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ pip-log.txt media/js/*.r*.js media/css/*.r*.css *DS_Store +*.egg-info +