From b2c31ef6587ab92d4ddd0ee994557a38cb6cb9ea Mon Sep 17 00:00:00 2001 From: Son Date: Fri, 19 Nov 2021 18:30:36 +0100 Subject: [PATCH] fix the pagination error display --- app/api/serializer.py | 4 +++- app/dashboard/views/index.py | 14 +++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/api/serializer.py b/app/api/serializer.py index e308f982..2d9546b6 100644 --- a/app/api/serializer.py +++ b/app/api/serializer.py @@ -145,6 +145,8 @@ def get_alias_infos_with_pagination_v3( alias_filter=None, mailbox_id=None, directory_id=None, + page_limit=PAGE_LIMIT, + page_size=PAGE_LIMIT, ) -> [AliasInfo]: q = construct_alias_query(user) @@ -199,7 +201,7 @@ def get_alias_infos_with_pagination_v3( q = q.order_by(Alias.pinned.desc()) q = q.order_by(latest_activity.desc()) - q = list(q.limit(PAGE_LIMIT).offset(page_id * PAGE_LIMIT)) + q = list(q.limit(page_limit).offset(page_id * page_size)) ret = [] for alias, contact, email_log, custom_domain, nb_reply, nb_blocked, nb_forward in q: diff --git a/app/dashboard/views/index.py b/app/dashboard/views/index.py index c4374a94..6c16f239 100644 --- a/app/dashboard/views/index.py +++ b/app/dashboard/views/index.py @@ -163,7 +163,19 @@ def index(): alias_infos = get_alias_infos_with_pagination_v3( current_user, page, query, sort, alias_filter, mailbox_id, directory_id ) - last_page = len(alias_infos) < PAGE_LIMIT + # to know whether there's alias on the next page + next_page_alias = get_alias_infos_with_pagination_v3( + current_user, + page + 1, # next page + query, + sort, + alias_filter, + mailbox_id, + directory_id, + page_limit=1, # only load 1 alias + ) + + last_page = len(next_page_alias) == 0 # add highlighted alias in case it's not included if highlight_alias_id and highlight_alias_id not in [