adding phase 5 init framework, added deployment ease scripts
This commit is contained in:
@@ -53,6 +53,46 @@ class PaginatedResult:
|
||||
"""Get next page number."""
|
||||
return self.page + 1 if self.has_next else None
|
||||
|
||||
@property
|
||||
def prev_num(self) -> int:
|
||||
"""Alias for prev_page (Flask-SQLAlchemy compatibility)."""
|
||||
return self.prev_page
|
||||
|
||||
@property
|
||||
def next_num(self) -> int:
|
||||
"""Alias for next_num (Flask-SQLAlchemy compatibility)."""
|
||||
return self.next_page
|
||||
|
||||
def iter_pages(self, left_edge=1, left_current=1, right_current=2, right_edge=1):
|
||||
"""
|
||||
Generate page numbers for pagination display.
|
||||
|
||||
Yields page numbers and None for gaps, compatible with Flask-SQLAlchemy's
|
||||
pagination.iter_pages() method.
|
||||
|
||||
Args:
|
||||
left_edge: Number of pages to show on the left edge
|
||||
left_current: Number of pages to show left of current page
|
||||
right_current: Number of pages to show right of current page
|
||||
right_edge: Number of pages to show on the right edge
|
||||
|
||||
Yields:
|
||||
int or None: Page number or None for gaps
|
||||
|
||||
Example:
|
||||
For 100 pages, current page 50:
|
||||
Yields: 1, None, 48, 49, 50, 51, 52, None, 100
|
||||
"""
|
||||
last = 0
|
||||
for num in range(1, self.pages + 1):
|
||||
if num <= left_edge or \
|
||||
(num > self.page - left_current - 1 and num < self.page + right_current) or \
|
||||
num > self.pages - right_edge:
|
||||
if last + 1 != num:
|
||||
yield None
|
||||
yield num
|
||||
last = num
|
||||
|
||||
def to_dict(self) -> Dict[str, Any]:
|
||||
"""
|
||||
Convert to dictionary for API responses.
|
||||
|
||||
Reference in New Issue
Block a user