From 12b81cb8570db762c9891bcd3380e8115e5555ed Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Mon, 2 Jun 2014 17:06:18 +0100 Subject: [PATCH 1/4] Added page pagination --- .../templates/wagtailadmin/pages/list.html | 22 ++++++++++++++++++- wagtail/wagtailadmin/views/pages.py | 10 +++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html index 7078834ae..0c8f16467 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html @@ -229,4 +229,24 @@

{% trans "No pages have been created." %}{% if parent_page and parent_page_perms.can_add_subpage %} {% blocktrans %}Why not add one?{% endblocktrans %}{% endif %} {% endif %} - \ No newline at end of file + + +{% if parent_page and pages and pages.paginator %} +

+{% endif %} \ No newline at end of file diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py index 308f6fdd4..64c612a7b 100644 --- a/wagtail/wagtailadmin/views/pages.py +++ b/wagtail/wagtailadmin/views/pages.py @@ -33,6 +33,16 @@ def index(request, parent_page_id=None): else: ordering = 'title' + # Pagination + p = request.GET.get('p', 1) + paginator = Paginator(pages, 50) + try: + pages = paginator.page(p) + except PageNotAnInteger: + pages = paginator.page(1) + except EmptyPage: + pages = paginator.page(paginator.num_pages) + return render(request, 'wagtailadmin/pages/index.html', { 'parent_page': parent_page, 'ordering': ordering, From 8b1db37b4474f32802d372f7f42ec6fda0476d31 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Mon, 2 Jun 2014 17:10:11 +0100 Subject: [PATCH 2/4] Keep ordering when paginating pages --- wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html index 0c8f16467..7258c5429 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/list.html @@ -239,12 +239,12 @@ From 414b3684b98da784c8b486ffc081f360921ebe1a Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Mon, 2 Jun 2014 17:15:28 +0100 Subject: [PATCH 3/4] Don't paginate if the user is reordering --- wagtail/wagtailadmin/views/pages.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py index 64c612a7b..b5779a6ad 100644 --- a/wagtail/wagtailadmin/views/pages.py +++ b/wagtail/wagtailadmin/views/pages.py @@ -34,14 +34,15 @@ def index(request, parent_page_id=None): ordering = 'title' # Pagination - p = request.GET.get('p', 1) - paginator = Paginator(pages, 50) - try: - pages = paginator.page(p) - except PageNotAnInteger: - pages = paginator.page(1) - except EmptyPage: - pages = paginator.page(paginator.num_pages) + if ordering != 'ord': + p = request.GET.get('p', 1) + paginator = Paginator(pages, 50) + try: + pages = paginator.page(p) + except PageNotAnInteger: + pages = paginator.page(1) + except EmptyPage: + pages = paginator.page(paginator.num_pages) return render(request, 'wagtailadmin/pages/index.html', { 'parent_page': parent_page, From 83ecd86937459da76f94795fe6de95476845e50a Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Tue, 3 Jun 2014 09:37:01 +0100 Subject: [PATCH 4/4] Fixed unit test --- wagtail/wagtailadmin/tests/test_pages_views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wagtail/wagtailadmin/tests/test_pages_views.py b/wagtail/wagtailadmin/tests/test_pages_views.py index ccaa67dae..14e57a35e 100644 --- a/wagtail/wagtailadmin/tests/test_pages_views.py +++ b/wagtail/wagtailadmin/tests/test_pages_views.py @@ -25,7 +25,7 @@ class TestPageExplorer(TestCase): response = self.client.get(reverse('wagtailadmin_explore', args=(self.root_page.id, ))) self.assertEqual(response.status_code, 200) self.assertEqual(self.root_page, response.context['parent_page']) - self.assertTrue(response.context['pages'].filter(id=self.child_page.id).exists()) + self.assertTrue(response.context['pages'].paginator.object_list.filter(id=self.child_page.id).exists()) class TestPageCreation(TestCase):