From 21c466b2004e4c80e88de3e53b41c8e03f7f3d79 Mon Sep 17 00:00:00 2001 From: Brett Parker Date: Sun, 29 Mar 2009 13:05:43 +0100 Subject: [PATCH] Blog enhancements --- sommitrealweird/blog/feeds.py | 6 +++ .../blog/templates/blog/blog_index.html | 2 +- sommitrealweird/blog/urls.py | 3 ++ sommitrealweird/blog/views.py | 42 +++++++++++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/sommitrealweird/blog/feeds.py b/sommitrealweird/blog/feeds.py index d08456f..be04190 100644 --- a/sommitrealweird/blog/feeds.py +++ b/sommitrealweird/blog/feeds.py @@ -18,5 +18,11 @@ class LatestBlogEntries(Feed): except: return BlogEntry.objects.all().order_by('-publish_date') + def author_name(self, obj): + return "Brett Parker" + + def author_email(self, obj): + return "iDunno@sommitrealweird.co.uk" + def item_pubdate(self, obj): return obj.publish_date diff --git a/sommitrealweird/blog/templates/blog/blog_index.html b/sommitrealweird/blog/templates/blog/blog_index.html index e43cc64..395c8e8 100644 --- a/sommitrealweird/blog/templates/blog/blog_index.html +++ b/sommitrealweird/blog/templates/blog/blog_index.html @@ -20,7 +20,7 @@ {% endfor %} permalink

{% endfor %} - {% if paginated %} + {% if paginated and has_more_than_one_page %}

Pages: {% if has_prev %} Previous | diff --git a/sommitrealweird/blog/urls.py b/sommitrealweird/blog/urls.py index f41ed25..2ec24bd 100644 --- a/sommitrealweird/blog/urls.py +++ b/sommitrealweird/blog/urls.py @@ -5,6 +5,9 @@ urlpatterns = patterns('', (r'^(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/(?P[^/]+)(/|)$', 'blog.views.blog_view'), (r'^(?P[0-9]{4})(?P[0-9]{2})(?P[0-9]{2})-(?P[^/]+)\.html$', 'blog.views.blog_view'), (r'^(?P[0-9]{4})(?P[0-9]{2})(?P[0-9]{2})(?P[0-9]{2})(?P[0-9]{2})-(?P[^/]+)\.html$', 'blog.views.blog_view'), + (r'^(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/$', 'blog.views.blog_view'), + (r'^(?P[0-9]{4})/(?P[0-9]{2})/$', 'blog.views.blog_view'), + (r'^(?P[0-9]{4})/$', 'blog.views.blog_view'), (r'^section/(?P

[^/]*)/$', 'blog.views.blog_index'), (r'^$', 'blog.views.blog_index'), ) diff --git a/sommitrealweird/blog/views.py b/sommitrealweird/blog/views.py index b01bec8..08b5267 100644 --- a/sommitrealweird/blog/views.py +++ b/sommitrealweird/blog/views.py @@ -26,6 +26,7 @@ def blog_index(request, section=None): "page": page, "pages": pages, "paginated": 1, + "has_more_than_one_page": (len(pages) > 1), "has_next": paginated_entries.has_next(), "has_prev": paginated_entries.has_previous(), "next": page + 1, @@ -52,3 +53,44 @@ def blog_view(request, year=None, month=None, day=None, hour=None, minutes=None, } ) return HttpResponse(t.render(c)) + else: + entries = BlogEntry.objects.all() + if year and month and day: + year = int(year) + month = int(month) + day = int(day) + entries = entries.filter(publish_date__year=year, publish_date__month=month, publish_date__day=day) + elif year and month: + year = int(year) + month = int(month) + entries = entries.filter(publish_date__year=year, publish_date__month=month) + elif year: + year = int(year) + entries = entries.filter(publish_date__year=year) + if entries: + entries = entries.order_by('-publish_date') + paginate_by=20 + paginator = Paginator(entries, paginate_by) + try: + page = int(request.GET.get('page', 1)) + except ValueError: + page = 1 + paginated_entries = paginator.page(page) + pages = paginator.page_range + t = loader.get_template("blog/blog_index.html") + c = RequestContext(request, + { + "entries": paginated_entries.object_list, + "title": settings.BLOG_TITLE, + "page": page, + "pages": pages, + "paginated": 1, + "has_more_than_one_page": (len(pages) > 1), + "has_next": paginated_entries.has_next(), + "has_prev": paginated_entries.has_previous(), + "next": page + 1, + "prev": page - 1 + }) + return HttpResponse(t.render(c)) + else: + raise Http404 -- 2.30.2