|
@ -113,6 +113,13 @@ class PaginatedQuery(ModelQuery): |
|
|
|
|
|
|
|
|
return self |
|
|
return self |
|
|
|
|
|
|
|
|
|
|
|
def remove_before_after(self) -> PaginatedQuery: |
|
|
|
|
|
"""Remove all before or after restrictions from query""" |
|
|
|
|
|
self.before_id = None |
|
|
|
|
|
self.after_id = None |
|
|
|
|
|
|
|
|
|
|
|
return self |
|
|
|
|
|
|
|
|
def _apply_before_or_after(self) -> PaginatedQuery: |
|
|
def _apply_before_or_after(self) -> PaginatedQuery: |
|
|
"""Apply the "before" or "after" restrictions if necessary.""" |
|
|
"""Apply the "before" or "after" restrictions if necessary.""" |
|
|
# pylint: disable=assignment-from-no-return |
|
|
# pylint: disable=assignment-from-no-return |
|
@ -232,6 +239,13 @@ class PaginatedResults: |
|
|
self.has_next_page = False |
|
|
self.has_next_page = False |
|
|
self.has_prev_page = False |
|
|
self.has_prev_page = False |
|
|
|
|
|
|
|
|
|
|
|
# fetch total number of results without pagination |
|
|
|
|
|
self.total_count = ( |
|
|
|
|
|
query.request.db_session.query(func.count()) |
|
|
|
|
|
.select_from(query.remove_before_after().statement) |
|
|
|
|
|
.scalar() |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
def __iter__(self) -> Iterator[Any]: |
|
|
def __iter__(self) -> Iterator[Any]: |
|
|
"""Iterate over the results.""" |
|
|
"""Iterate over the results.""" |
|
|
return iter(self.results) |
|
|
return iter(self.results) |
|
|