diff --git a/core/templates/core/macros.jinja b/core/templates/core/macros.jinja index 244617c5..9be68685 100644 --- a/core/templates/core/macros.jinja +++ b/core/templates/core/macros.jinja @@ -72,3 +72,23 @@ {% trans %}Delete{% endtrans %} {% endif %} {% endmacro %} + +{% macro paginate(page_obj, paginator) %} + {% if page_obj.has_previous() %} + {% trans %}Previous{% endtrans %} + {% else %} + {% trans %}Previous{% endtrans %} + {% endif %} + {% for i in paginator.page_range %} + {% if page_obj.number == i %} + {{ i }} ({% trans %}current{% endtrans %}) + {% else %} + {{ i }} + {% endif %} + {% endfor %} + {% if page_obj.has_next() %} + {% trans %}Next{% endtrans %} + {% else %} + {% trans %}Next{% endtrans %} + {% endif %} +{% endmacro %} \ No newline at end of file diff --git a/core/templates/core/user_tools.jinja b/core/templates/core/user_tools.jinja index f23cf6dd..1074e64e 100644 --- a/core/templates/core/user_tools.jinja +++ b/core/templates/core/user_tools.jinja @@ -103,6 +103,7 @@
{{ election.description }}
{%- endfor %} +{% if is_paginated %} + {{ paginate(page_obj, paginator) }} +{% endif %} {%- endblock %} diff --git a/election/tests.py b/election/tests.py index a2bd3f2f..61ad1226 100644 --- a/election/tests.py +++ b/election/tests.py @@ -1,9 +1,7 @@ -from django.test import Client, TestCase +from django.test import TestCase from django.core.urlresolvers import reverse -from django.contrib.auth.models import Group from django.core.management import call_command from django.conf import settings -from datetime import date, datetime from core.models import User, Group from election.models import Election @@ -15,8 +13,10 @@ class MainElection(TestCase): self.election = Election.objects.all().first() self.public_group = Group.objects.get(id=settings.SITH_GROUP_PUBLIC_ID) - self.subscriber_group = Group.objects.get(name=settings.SITH_MAIN_MEMBERS_GROUP) - self.ae_board_group = Group.objects.get(name=settings.SITH_MAIN_BOARD_GROUP) + self.subscriber_group = Group.objects.get( + name=settings.SITH_MAIN_MEMBERS_GROUP) + self.ae_board_group = Group.objects.get( + name=settings.SITH_MAIN_BOARD_GROUP) self.sli = User.objects.get(username='sli') self.subscriber = User.objects.get(username='subscriber') self.public = User.objects.get(username='public') @@ -29,9 +29,9 @@ class ElectionDetailTest(MainElection): self.election.save() self.client.login(username=self.public.username, password='plop') response_get = self.client.get(reverse('election:detail', - args=str(self.election.id))) + args=str(self.election.id))) response_post = self.client.get(reverse('election:detail', - args=str(self.election.id))) + args=str(self.election.id))) self.assertTrue(response_get.status_code == 403) self.assertTrue(response_post.status_code == 403) self.election.view_groups.remove(self.subscriber_group) @@ -41,9 +41,9 @@ class ElectionDetailTest(MainElection): def test_permisson_granted(self): self.client.login(username=self.public.username, password='plop') response_get = self.client.get(reverse('election:detail', - args=str(self.election.id))) + args=str(self.election.id))) response_post = self.client.post(reverse('election:detail', - args=str(self.election.id))) + args=str(self.election.id))) self.assertFalse(response_get.status_code == 403) self.assertFalse(response_post.status_code == 403) self.assertTrue('La roue tourne' in str(response_get.content)) @@ -53,8 +53,8 @@ class ElectionUpdateView(MainElection): def test_permission_denied(self): self.client.login(username=self.subscriber.username, password='plop') response_get = self.client.get(reverse('election:update', - args=str(self.election.id))) + args=str(self.election.id))) response_post = self.client.post(reverse('election:update', - args=str(self.election.id))) + args=str(self.election.id))) self.assertTrue(response_get.status_code == 403) self.assertTrue(response_post.status_code == 403) diff --git a/election/urls.py b/election/urls.py index 8140cb49..7c99e8e8 100644 --- a/election/urls.py +++ b/election/urls.py @@ -4,8 +4,10 @@ from election.views import * urlpatterns = [ url(r'^$', ElectionsListView.as_view(), name='list'), + url(r'^archived$', ElectionListArchivedView.as_view(), name='list_archived'), url(r'^add$', ElectionCreateView.as_view(), name='create'), url(r'^(?P