]> git.parisson.com Git - teleforma.git/commitdiff
add alphabetical paginator to user list view
authorGuillaume Pellerin <yomguy@parisson.com>
Tue, 17 Apr 2012 11:05:29 +0000 (13:05 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Tue, 17 Apr 2012 11:05:29 +0000 (13:05 +0200)
teleforma/templates/telemeta/inc/user_list.html
teleforma/views.py

index 7f94e9abe36800b227a4a97feff8d36779e16c71..ef3eba2017bbadcc9cc983c4d3a1cec03f66a297 100644 (file)
@@ -3,7 +3,20 @@
 {% load teleforma_tags %}
 {% load pagination_tags %}
 
-{% paginate %}
+<div class="pagination">
+    {% for p in page.paginator.pages %}
+
+      {% if p == page %}
+          <span class="selected">{{ page }}</span>
+      {% else %}
+          <a href="?page={{ p.number }}">
+              {{ p }}
+          </a>
+      {% endif %}
+
+    {% endfor %}
+</div>
+
 
 <div id="users">
   <table class="listing" width="100%">
@@ -20,7 +33,7 @@
     </tr>
     </thead>
     <tbody id="spacing">
-    {% for user in users %}
+    {% for user in page.object_list %}
     <tr>
      <td><a href="{% url telemeta-profile-detail user.username %}">{{ user.last_name }}</a></td>
      <td><a href="{% url telemeta-profile-detail user.username %}">{{ user.first_name }}</a></td>
index 67ea464249efca6850772ad88ce2f0df626eac16..c8cb46d4c1c0857c87dbd99bedda4ff2e33d4dea 100755 (executable)
@@ -158,7 +158,6 @@ class UsersView(ListView):
     model = User
     template_name='telemeta/users.html'
     context_object_name = 'users'
-    paginate_by = 12
 
     def get_queryset(self):
         return User.objects.all().select_related(depth=1).order_by('last_name')
@@ -167,6 +166,17 @@ class UsersView(ListView):
         context = super(UsersView, self).get_context_data(**kwargs)
         context['trainings'] = Training.objects.all()
         context['all_users'] = User.objects.all()
+        paginator = NamePaginator(self.object_list, on="username", per_page=12)
+        try:
+            page = int(self.request.GET.get('page', '1'))
+        except ValueError:
+            page = 1
+
+        try:
+            page = paginator.page(page)
+        except (InvalidPage):
+            page = paginator.page(paginator.num_pages)
+        context['page'] = page
         return context
 
     @method_decorator(login_required)