Reformat using black
This commit is contained in:
parent
efee4ad081
commit
a87fb49918
221 changed files with 19127 additions and 7310 deletions
|
@ -4,10 +4,10 @@ from functools import reduce
|
|||
from django.core.paginator import InvalidPage, Page, Paginator
|
||||
|
||||
__all__ = (
|
||||
'InvalidPage',
|
||||
'ExPaginator',
|
||||
'DiggPaginator',
|
||||
'QuerySetDiggPaginator',
|
||||
"InvalidPage",
|
||||
"ExPaginator",
|
||||
"DiggPaginator",
|
||||
"QuerySetDiggPaginator",
|
||||
)
|
||||
|
||||
|
||||
|
@ -182,15 +182,17 @@ class DiggPaginator(ExPaginator):
|
|||
"""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.body = kwargs.pop('body', 10)
|
||||
self.tail = kwargs.pop('tail', 2)
|
||||
self.align_left = kwargs.pop('align_left', False)
|
||||
self.margin = kwargs.pop('margin', 4) # TODO: make the default relative to body?
|
||||
self.body = kwargs.pop("body", 10)
|
||||
self.tail = kwargs.pop("tail", 2)
|
||||
self.align_left = kwargs.pop("align_left", False)
|
||||
self.margin = kwargs.pop(
|
||||
"margin", 4
|
||||
) # TODO: make the default relative to body?
|
||||
# validate padding value
|
||||
max_padding = int(math.ceil(self.body / 2.0) - 1)
|
||||
self.padding = kwargs.pop('padding', min(4, max_padding))
|
||||
self.padding = kwargs.pop("padding", min(4, max_padding))
|
||||
if self.padding > max_padding:
|
||||
raise ValueError('padding too large for body (max %d)' % max_padding)
|
||||
raise ValueError("padding too large for body (max %d)" % max_padding)
|
||||
super(DiggPaginator, self).__init__(*args, **kwargs)
|
||||
|
||||
def page(self, number, *args, **kwargs):
|
||||
|
@ -202,13 +204,24 @@ class DiggPaginator(ExPaginator):
|
|||
number = int(number) # we know this will work
|
||||
|
||||
# easier access
|
||||
num_pages, body, tail, padding, margin = \
|
||||
self.num_pages, self.body, self.tail, self.padding, self.margin
|
||||
num_pages, body, tail, padding, margin = (
|
||||
self.num_pages,
|
||||
self.body,
|
||||
self.tail,
|
||||
self.padding,
|
||||
self.margin,
|
||||
)
|
||||
|
||||
# put active page in middle of main range
|
||||
main_range = list(map(int, [
|
||||
math.floor(number - body / 2.0) + 1, # +1 = shift odd body to right
|
||||
math.floor(number + body / 2.0)]))
|
||||
main_range = list(
|
||||
map(
|
||||
int,
|
||||
[
|
||||
math.floor(number - body / 2.0) + 1, # +1 = shift odd body to right
|
||||
math.floor(number + body / 2.0),
|
||||
],
|
||||
)
|
||||
)
|
||||
# adjust bounds
|
||||
if main_range[0] < 1:
|
||||
main_range = list(map(abs(main_range[0] - 1).__add__, main_range))
|
||||
|
@ -249,7 +262,10 @@ class DiggPaginator(ExPaginator):
|
|||
# section, again.
|
||||
main_range = [1, num_pages]
|
||||
else:
|
||||
main_range = [min(num_pages - body + 1, max(number - padding, main_range[0])), num_pages]
|
||||
main_range = [
|
||||
min(num_pages - body + 1, max(number - padding, main_range[0])),
|
||||
num_pages,
|
||||
]
|
||||
else:
|
||||
trailing = list(range(num_pages - tail + 1, num_pages + 1))
|
||||
|
||||
|
@ -263,8 +279,10 @@ class DiggPaginator(ExPaginator):
|
|||
page.main_range = list(range(main_range[0], main_range[1] + 1))
|
||||
page.leading_range = leading
|
||||
page.trailing_range = trailing
|
||||
page.page_range = reduce(lambda x, y: x + ((x and y) and [False]) + y,
|
||||
[page.leading_range, page.main_range, page.trailing_range])
|
||||
page.page_range = reduce(
|
||||
lambda x, y: x + ((x and y) and [False]) + y,
|
||||
[page.leading_range, page.main_range, page.trailing_range],
|
||||
)
|
||||
|
||||
page.__class__ = DiggPage
|
||||
return page
|
||||
|
@ -272,10 +290,16 @@ class DiggPaginator(ExPaginator):
|
|||
|
||||
class DiggPage(Page):
|
||||
def __str__(self):
|
||||
return " ... ".join(filter(None, [
|
||||
" ".join(map(str, self.leading_range)),
|
||||
" ".join(map(str, self.main_range)),
|
||||
" ".join(map(str, self.trailing_range))]))
|
||||
return " ... ".join(
|
||||
filter(
|
||||
None,
|
||||
[
|
||||
" ".join(map(str, self.leading_range)),
|
||||
" ".join(map(str, self.main_range)),
|
||||
" ".join(map(str, self.trailing_range)),
|
||||
],
|
||||
)
|
||||
)
|
||||
|
||||
@property
|
||||
def num_pages(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue