| Server IP : 85.214.239.14 / Your IP : 216.73.216.178 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /srv/modoboa/env/lib64/python3.5/site-packages/modoboa/lib/ |
Upload File : |
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
from modoboa.parameters import tools as param_tools
def get_sort_order(qdict, default, allowed_values=None):
"""Return a sort order from a querydict object
:param QueryDict qdict: the object to analyse
:param string default: the default sort order if no one is found
:param list allowed_values: an optional list of allowed values
:return: a 2uple of strings
"""
sort_order = qdict.get("sort_order", default)
if sort_order.startswith("-"):
sort_dir = "-"
sort_order = sort_order[1:]
else:
sort_dir = ""
if allowed_values is not None and sort_order not in allowed_values:
return (default, "")
return (sort_order, sort_dir)
def get_listing_page(objects, pagenum):
"""Return specific a listing page.
A page contains a limited number of elements (see
ITEMS_PER_PAGE). If the given page number is wrong, the first page
will be always returned.
:param list objects: object list to paginate
:param int pagenum: page number
:return: a ``Page`` object
"""
paginator = Paginator(
objects,
param_tools.get_global_parameter("items_per_page", app="core"),
allow_empty_first_page=False
)
try:
page = paginator.page(int(pagenum))
except (EmptyPage, PageNotAnInteger, ValueError):
page = None
return page