From: Michele Ciccozzi Date: Mon, 6 Jun 2011 13:06:45 +0000 (+0200) Subject: Merge branch 'more_customizations' X-Git-Tag: release-2.0~32^2 X-Git-Url: https://git.mdrn.pl/django-pagination.git/commitdiff_plain/b10406063c839f4ad856a1130c66706f004fa358?hp=ef5ff95059866e94e89cad912c30497f90442765 Merge branch 'more_customizations' Conflicts: pagination/templates/pagination/pagination.html pagination/templatetags/pagination_tags.py --- diff --git a/.gitignore b/.gitignore index d7c2b72..7abee5b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.pyc dist *.egg-info +build diff --git a/MANIFEST.in b/MANIFEST.in index 74bebc4..471e508 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,5 @@ include LICENSE.txt include CONTRIBUTORS.txt recursive-include docs * -recursive-include pagination/templates/pagination *.html \ No newline at end of file +recursive-include pagination/templates/pagination *.html +recursive-include pagination/locale * \ No newline at end of file diff --git a/docs/usage.txt b/docs/usage.txt index b520169..31dad6d 100644 --- a/docs/usage.txt +++ b/docs/usage.txt @@ -69,6 +69,19 @@ installation, which is covered in INSTALL.txt in this same directory.) That's it! You have now paginated ``object_list`` and given users of the site a way to navigate between the different pages--all without touching your views. +Custom pagination templates +--------------------------- + +In order to override the default pagination template, declare a context variable +named ``pagination_template`` set to the template name:: + + {% with 'pagination/blog/post.html' as pagination_template %} + {% autopaginate posts pagesize %} + {% paginate %} + {% endwith %} + +The default pagination template is contained in the ``pagination/default.html`` +file inside the distribution. A Note About Uploads -------------------- @@ -103,4 +116,21 @@ pagination tags. Here's an overview: ``PAGINATION_INVALID_PAGE_RAISES_404`` Determines whether an invalid page raises an ``Http404`` or just sets the ``invalid_page`` context variable. ``True`` does the former and ``False`` - does the latter. \ No newline at end of file + does the latter. + +``DISPLAY_PAGE_LINKS`` + If set to ``False``, links for single pages will not be displayed. + +``PREVIOUS_LINK_DECORATOR`` + An HTML prefix for the previous page link; the default value is ``‹‹ ``. + +``NEXT_LINK_DECORATOR`` + An HTML postfix for the next page link; the default value is `` ››``. + +``DISPLAY_DISABLED_PREVIOUS_LINK`` + If set to ``False``, the previous page link will not be displayed if there's + no previous page. + +``DISPLAY_DISABLED_NEXT_LINK`` + If set to ``False``, the next page link will not be displayed if there's no + next page. diff --git a/pagination/locale/it/LC_MESSAGES/django.mo b/pagination/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000..9cda988 Binary files /dev/null and b/pagination/locale/it/LC_MESSAGES/django.mo differ diff --git a/pagination/locale/it/LC_MESSAGES/django.po b/pagination/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000..a8832db --- /dev/null +++ b/pagination/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,24 @@ +# django-pagination Italian translation +# Copyright (C) 2010 Fabio Corneti +# This file is distributed under the same license as the django-pagination package. +# Fabio Corneti , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-04-22 12:04+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: templates/pagination/default.html:6 templates/pagination/default.html:9 +msgid "previous" +msgstr "precedenti" + +#: templates/pagination/default.html:30 templates/pagination/default.html:33 +msgid "next" +msgstr "successive" diff --git a/pagination/templates/pagination/default.html b/pagination/templates/pagination/default.html new file mode 100644 index 0000000..2fe8410 --- /dev/null +++ b/pagination/templates/pagination/default.html @@ -0,0 +1,38 @@ +{% if is_paginated %} + {% load i18n %} + +{% endif %} diff --git a/pagination/templates/pagination/pagination.html b/pagination/templates/pagination/pagination.html index e817b0e..fd925f0 100644 --- a/pagination/templates/pagination/pagination.html +++ b/pagination/templates/pagination/pagination.html @@ -1,26 +1 @@ -{% if is_paginated %} -{% load i18n %} - -{% endif %} +{% include pagination_template %} diff --git a/pagination/templatetags/pagination_tags.py b/pagination/templatetags/pagination_tags.py old mode 100644 new mode 100755 index 3273538..2ad1403 --- a/pagination/templatetags/pagination_tags.py +++ b/pagination/templatetags/pagination_tags.py @@ -16,6 +16,11 @@ DEFAULT_WINDOW = getattr(settings, 'PAGINATION_DEFAULT_WINDOW', 4) DEFAULT_ORPHANS = getattr(settings, 'PAGINATION_DEFAULT_ORPHANS', 0) INVALID_PAGE_RAISES_404 = getattr(settings, 'PAGINATION_INVALID_PAGE_RAISES_404', False) +DISPLAY_PAGE_LINKS = getattr(settings, 'PAGINATION_DISPLAY_PAGE_LINKS', True) +PREVIOUS_LINK_DECORATOR = getattr(settings, 'PAGINATION_PREVIOUS_LINK_DECORATOR', "‹‹ ") +NEXT_LINK_DECORATOR = getattr(settings, 'PAGINATION_NEXT_LINK_DECORATOR', " ››") +DISPLAY_DISABLED_PREVIOUS_LINK = getattr(settings, 'PAGINATION_DISPLAY_DISABLED_PREVIOUS_LINK', False) +DISPLAY_DISABLED_NEXT_LINK = getattr(settings, 'PAGINATION_DISPLAY_DISABLED_NEXT_LINK', False) def do_autopaginate(parser, token): """ @@ -143,12 +148,18 @@ def paginate(context, window=DEFAULT_WINDOW, hashtag=''): A dictionary of all of the **GET** parameters in the current request. This is useful to maintain certain types of state, even when requesting a different page. - """ + + ``pagination_template`` + A custom template to include in place of the default ``pagination.html`` + contents. + + """ try: paginator = context['paginator'] page_obj = context['page_obj'] page_suffix = context.get('page_suffix', '') page_range = paginator.page_range + pagination_template = context.get('pagination_template', 'pagination/default.html') # Calculate the record range in the current page for display. records = {'first': 1 + (page_obj.number - 1) * paginator.per_page} records['last'] = records['first'] + paginator.per_page - 1 @@ -228,6 +239,12 @@ def paginate(context, window=DEFAULT_WINDOW, hashtag=''): 'hashtag': hashtag, 'is_paginated': paginator.count > paginator.per_page, 'page_suffix': page_suffix, + 'display_page_links': DISPLAY_PAGE_LINKS, + 'display_disabled_previous_link': DISPLAY_DISABLED_PREVIOUS_LINK, + 'display_disabled_next_link': DISPLAY_DISABLED_NEXT_LINK, + 'previous_link_decorator': PREVIOUS_LINK_DECORATOR, + 'next_link_decorator': NEXT_LINK_DECORATOR, + 'pagination_template': pagination_template, } if 'request' in context: getvars = context['request'].GET.copy()