summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--media/archweb.css4
-rw-r--r--news/views.py1
-rw-r--r--templates/news/list.html4
-rw-r--r--templates/news/paginator.html22
4 files changed, 31 insertions, 0 deletions
diff --git a/media/archweb.css b/media/archweb.css
index f417e5e..e662c67 100644
--- a/media/archweb.css
+++ b/media/archweb.css
@@ -142,6 +142,10 @@ div.widget { margin-bottom: 1.5em; }
#artwork img.inverted { background: #333; padding: 0; }
#artwork div.imagelist img { display: inline; margin: 0.75em; }
+/* news: article list */
+.news-nav { float: right; margin-top: -2.2em; }
+.news-nav .prev, .news-nav .next { margin-left: 1em; margin-right: 1em; }
+
/* news: article pages */
div.news-article .article-info { margin: 0; color: #999; }
diff --git a/news/views.py b/news/views.py
index 3747211..cc16981 100644
--- a/news/views.py
+++ b/news/views.py
@@ -19,6 +19,7 @@ def view(request, newsid):
def list(request):
return list_detail.object_list(request,
News.objects.all().select_related('author').defer('content'),
+ paginate_by=50,
template_name="news/list.html",
template_object_name="news")
diff --git a/templates/news/list.html b/templates/news/list.html
index cadc24a..258456a 100644
--- a/templates/news/list.html
+++ b/templates/news/list.html
@@ -12,6 +12,8 @@
</ul>
{% endif %}
+ {% include "news/paginator.html" %}
+
<table id="article-list" class="results">
<thead>
<tr>
@@ -45,5 +47,7 @@
</tbody>
</table>
+ {% include "news/paginator.html" %}
+
</div>
{% endblock %}
diff --git a/templates/news/paginator.html b/templates/news/paginator.html
new file mode 100644
index 0000000..fbd0546
--- /dev/null
+++ b/templates/news/paginator.html
@@ -0,0 +1,22 @@
+{% if is_paginated %}
+<div class="pagination">
+ <p>{{paginator.count}} news items, viewing page {{page_obj.number}} of {{paginator.num_pages}}.</p>
+ <p class="news-nav">
+ {% if page_obj.has_previous %}
+ <a class="prev" href="?page={{page_obj.previous_page_number}}"
+ title="Go to previous page">&lt; Prev</a>
+ {% endif %}
+ {% for num in paginator.page_range %}
+ {% ifequal num page_obj.number %}
+ <span>{{num}}</span>
+ {% else %}
+ <a href="?page={{num}}" title="Go to page {{num}}">{{num}}</a>
+ {% endifequal %}
+ {% endfor %}
+ {% if page_obj.has_next %}
+ <a class="next" href="?page={{page_obj.next_page_number}}"
+ title="Go to next page">Next &gt;</a>
+ {% endif %}
+ </p>
+</div>
+{% endif %}