Browse Source

Made threads lists paginable

Rafał Pitoń 10 years ago
parent
commit
46e4778bcf

+ 1 - 1
misago/templates/misago/admin/generic/paginator.html

@@ -3,7 +3,7 @@
 <ul class="pager pull-left">
   <li class="page">
     {% blocktrans with page=page.number pages=paginator.num_pages %}
-    Page {{ page}} of {{ pages }}
+    Page {{ page }} of {{ pages }}
     {% endblocktrans %}
   </li>
   {% if page.has_previous %}

+ 4 - 28
misago/templates/misago/threads/list.html

@@ -1,5 +1,5 @@
 {% extends "misago/base.html" %}
-{% load humanize i18n misago_avatars misago_stringutils %}
+{% load humanize i18n misago_avatars misago_capture misago_stringutils %}
 
 
 {% block title %}{{ forum.name }} | {{ block.super }}{% endblock title %}
@@ -38,31 +38,7 @@
 
     <div class="threads-list">
 
-      <div class="table-actions">
-        {% if forum.is_closed %}
-        <span class="btn btn-default disabled pull-right">
-          <span class="fa fa-lock"></span>
-          {% trans "This forum is closed." %}
-        </span>
-        {% else %}
-          {% if user.is_anonymous %}
-          <a href="{% url LOGIN_URL %}" class="btn btn-default pull-right">
-            <span class="fa fa-check-circle"></span>
-            {% trans "Sign in to start thread" %}
-          </a>
-          {% elif forum.acl.can_start_threads %}
-          <a href="{% url 'misago:start_thread' forum_slug=forum.slug forum_id=forum.id %}" class="btn btn-success pull-right">
-            <span class="fa fa-plus-circle"></span>
-            {% trans "Start thread" %}
-          </a>
-          {% else %}
-          <span class="btn btn-default btn-closed pull-right">
-            <span class="fa fa-ban"></span>
-            {% trans "Can't start threads" %}
-          </span>
-          {% endif %}
-        {% endif %}
-      </div>
+      {% include "misago/threads/list_actions.html" %}
 
       <div class="table-panel">
         <ul class="list-group">
@@ -155,8 +131,8 @@
         </ul>
       </div>
 
-      <div class="table-actions">
-      </div>
+      {% include "misago/threads/list_actions.html" %}
+
     </div>
 
   </div>

+ 66 - 0
misago/templates/misago/threads/list_actions.html

@@ -0,0 +1,66 @@
+{% load i18n misago_capture %}
+<div class="table-actions">
+
+  <ul class="pager pull-left">
+    <li class="page">
+      {% capture trimmed as page_strong %}
+      <strong>{{ page.number }}</strong>
+      {% endcapture %}
+      {% capture trimmed as pages_strong %}
+      <strong>{{ paginator.num_pages }}</strong>
+      {% endcapture %}
+      {% blocktrans with page=page_strong|safe pages=pages_strong|safe %}
+      Page {{ page }} of {{ pages }}
+      {% endblocktrans %}
+    </li>
+    {% if page.has_previous %}
+      <li>
+        <a href="{{ forum.get_absolute_url }}" class="tooltip-top" title="{% trans "Go to first page" %}">
+          {% if page.number > 2 %}
+          {% trans "First" %}
+          {% else %}
+          <span class="glyphicon glyphicon-chevron-left"></span>
+          {% endif %}
+        </a>
+      </li>
+      {% if page.number > 2 %}
+      <li>
+        <a href="{% url 'misago:forum' forum_slug=forum.slug forum_id=forum.id page=page.previous_page_number %}" class="tooltip-top" title="{% trans "Go to previous page" %}">
+          <span class="glyphicon glyphicon-chevron-left"></span>
+        </a>
+      </li>
+      {% endif %}
+    {% endif %}
+    {% if page.has_next %}
+      <li>
+        <a href="{% url 'misago:forum' forum_slug=forum.slug forum_id=forum.id page=page.next_page_number %}" class="tooltip-top" title="{% trans "Go to next page" %}">
+          <span class="glyphicon glyphicon-chevron-right"></span>
+        </a>
+      </li>
+    {% endif %}
+  </ul>
+
+  {% if forum.is_closed %}
+  <span class="btn btn-default disabled pull-right">
+    <span class="fa fa-lock"></span>
+    {% trans "This forum is closed." %}
+  </span>
+  {% else %}
+    {% if user.is_anonymous %}
+    <a href="{% url LOGIN_URL %}" class="btn btn-default pull-right">
+      <span class="fa fa-check-circle"></span>
+      {% trans "Sign in to start thread" %}
+    </a>
+    {% elif forum.acl.can_start_threads %}
+    <a href="{% url 'misago:start_thread' forum_slug=forum.slug forum_id=forum.id %}" class="btn btn-success pull-right">
+      <span class="fa fa-plus-circle"></span>
+      {% trans "Start thread" %}
+    </a>
+    {% else %}
+    <span class="btn btn-default btn-closed pull-right">
+      <span class="fa fa-ban"></span>
+      {% trans "Can't start threads" %}
+    </span>
+    {% endif %}
+  {% endif %}
+</div>

+ 2 - 1
misago/threads/views/generic.py

@@ -146,7 +146,7 @@ class ForumView(ThreadsView):
         threads_qs = self.filter_threads_queryset(request, forum, threads_qs)
 
         threads_qs = threads_qs.order_by('-weight', '-last_post_id')
-        page = paginate(threads_qs, kwargs.get('page', 0), 30, 10)
+        page = paginate(threads_qs, kwargs.get('page', 0), 20, 10)
         threads = []
 
         for announcement in queryset.filter(weight=ANNOUNCEMENT):
@@ -203,6 +203,7 @@ class ForumView(ThreadsView):
             'forum': forum,
             'path': get_forum_path(forum),
             'page': page,
+            'paginator': page.paginator,
             'threads': threads
         })