diff options
-rw-r--r-- | media/archweb.css | 4 | ||||
-rw-r--r-- | news/views.py | 1 | ||||
-rw-r--r-- | templates/news/list.html | 4 | ||||
-rw-r--r-- | templates/news/paginator.html | 22 |
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">< 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 ></a> + {% endif %} + </p> +</div> +{% endif %} |