changeset 97:96eec1ed0fd3

Render the forum page navigation in the view with render_to_string() to avoid doing it twice in the template code. Also undo a mistake in the last commit. Need 2 different orderings for Post objects: by creation date in normal views, and by reverse creation date in the admin.
author Brian Neal <bgneal@gmail.com>
date Sun, 13 Sep 2009 19:58:31 +0000
parents 93d9e74a471e
children d0d779dd0832
files gpp/forums/admin.py gpp/forums/models.py gpp/forums/views.py gpp/templates/forums/forum_index.html gpp/templates/forums/topic.html
diffstat 5 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/gpp/forums/admin.py	Sun Sep 13 18:43:08 2009 +0000
+++ b/gpp/forums/admin.py	Sun Sep 13 19:58:31 2009 +0000
@@ -39,6 +39,7 @@
     search_fields = ('body', )
     date_hierarchy = 'creation_date'
     list_filter = ('creation_date', 'update_date', )
+    ordering = ('-creation_date', )
     save_on_top = True
 
 
--- a/gpp/forums/models.py	Sun Sep 13 18:43:08 2009 +0000
+++ b/gpp/forums/models.py	Sun Sep 13 19:58:31 2009 +0000
@@ -119,7 +119,7 @@
     user_ip = models.IPAddressField(blank=True, default='', null=True)
 
     class Meta:
-        ordering = ('-creation_date', )
+        ordering = ('creation_date', )
 
     @models.permalink
     def get_absolute_url(self):
--- a/gpp/forums/views.py	Sun Sep 13 18:43:08 2009 +0000
+++ b/gpp/forums/views.py	Sun Sep 13 19:58:31 2009 +0000
@@ -10,6 +10,7 @@
 from django.core.paginator import InvalidPage
 from django.shortcuts import get_object_or_404
 from django.shortcuts import render_to_response
+from django.template.loader import render_to_string
 from django.template import RequestContext
 from django.views.decorators.http import require_POST
 
@@ -67,10 +68,14 @@
         page = paginator.page(page_num)
     except InvalidPage:
         raise Http404
+
+    # we do this for the template since it is rendered twice
+    page_nav = render_to_string('forums/pagination.html', {'page': page})
     
     return render_to_response('forums/forum_index.html', {
         'forum': forum,
         'page': page,
+        'page_nav': page_nav,
         },
         context_instance=RequestContext(request))
 
@@ -93,10 +98,14 @@
 
     last_page = page_num == paginator.num_pages
 
+    # we do this for the template since it is rendered twice
+    page_nav = render_to_string('forums/pagination.html', {'page': page})
+
     return render_to_response('forums/topic.html', {
         'forum': topic.forum,
         'topic': topic,
         'page': page,
+        'page_nav': page_nav,
         'last_page': last_page,
         'form': PostForm(initial={'topic_id': topic.id}),
         },
--- a/gpp/templates/forums/forum_index.html	Sun Sep 13 18:43:08 2009 +0000
+++ b/gpp/templates/forums/forum_index.html	Sun Sep 13 19:58:31 2009 +0000
@@ -11,7 +11,7 @@
 
 <div class="forum-block">
 <a href="{% url forums-new_topic slug=forum.slug %}">New Topic</a>
-{% forum_page_navigation page %}
+{{ page_nav }}
 <table class="forum-index-table">
    <thead>
       <tr>
@@ -42,6 +42,6 @@
    {% endfor %}
    </tbody>
 </table>
-{% forum_page_navigation page %}
+{{ page_nav }}
 </div>
 {% endblock %}
--- a/gpp/templates/forums/topic.html	Sun Sep 13 18:43:08 2009 +0000
+++ b/gpp/templates/forums/topic.html	Sun Sep 13 19:58:31 2009 +0000
@@ -1,5 +1,4 @@
 {% extends 'base.html' %}
-{% load forum_tags %}
 {% block title %}Forums: {{ topic.name }}{% endblock %}
 {% block custom_js %}{% if last_page %}{{ form.media }}{% endif %}{% endblock %}
 {% block content %}
@@ -18,14 +17,14 @@
 <a href="./?page={{ page.paginator.num_pages }}#forum-reply-form">New Reply</a> &bull;
 {% endif %}
 <a href="{% url forums-new_topic slug=forum.slug %}">New Topic</a>
-{% forum_page_navigation page %}
+{{ page_nav }}
 
 <table class="forum-topic" id="forum-topic">
 {% for post in page.object_list %}
 {% include 'forums/display_post.html' %}
 {% endfor %}
 </table>
-{% forum_page_navigation page %}
+{{ page_nav }}
 
 {% if last_page and user.is_authenticated %}
 <a name="forum-reply-form"></a>