From 29ddb7be1017c045cb6a568965e53eda11624122 Mon Sep 17 00:00:00 2001 From: A R R R Associates Date: Fri, 14 Aug 2026 15:06:32 +0530 Subject: [PATCH] Paginate partner review board panels --- .../templates/partners/review_board.html | 59 +++++++++++++++++-- 1 file changed, 53 insertions(+), 6 deletions(-) diff --git a/app/modules/partners/templates/partners/review_board.html b/app/modules/partners/templates/partners/review_board.html index 7a0fe38..52fa253 100644 --- a/app/modules/partners/templates/partners/review_board.html +++ b/app/modules/partners/templates/partners/review_board.html @@ -83,8 +83,15 @@ {% endmacro %} -{% macro panel(title, subtitle, ids, payload, tone) %} +{% macro panel(title, subtitle, ids, payload, tone, page_param, current_page, page_size, q_value) %}
+ {% set total_items = ids|length %} + {% set total_pages = ((total_items + page_size - 1) // page_size) if total_items else 1 %} + {% set page = current_page if current_page > 0 else 1 %} + {% if page > total_pages %}{% set page = total_pages %}{% endif %} + {% set start_index = (page - 1) * page_size %} + {% set page_ids = ids[start_index:start_index + page_size] %} +

{{ title }}

@@ -115,13 +122,13 @@ {% set rendered = namespace(seen=[]) %} {% for column in payload.columns %} {% for task in column.tasks %} - {% if task.subscription_id and task.subscription_id in ids and task.subscription_id not in rendered.seen %} + {% if task.subscription_id and task.subscription_id in page_ids and task.subscription_id not in rendered.seen %} {% set _ = rendered.seen.append(task.subscription_id) %} {{ engagement_row(task, column, payload) }} {% endif %} {% endfor %} {% endfor %} - {% if rendered.seen|length == 0 %} + {% if total_items == 0 %} No engagements in this section. @@ -129,6 +136,29 @@
+ + {% if total_items > page_size %} +
+
+ Showing {{ start_index + 1 }}-{{ [start_index + page_ids|length, total_items]|min }} of {{ total_items }} engagements +
+
+ {% if page > 1 %} + Previous + {% else %} + Previous + {% endif %} + Page {{ page }} of {{ total_pages }} + {% if page < total_pages %} + Next + {% else %} + Next + {% endif %} +
+
+ {% endif %}
{% endmacro %} @@ -223,12 +253,21 @@ {% endif %} {% endfor %} + {% set review_page = request.query_params.get('review_page', '1')|int %} + {% set progress_page = request.query_params.get('progress_page', '1')|int %} + {% set completed_page = request.query_params.get('completed_page', '1')|int %} + {% set panel_page_size = 25 %} + {{ panel( 'Review Required', 'Pending review, clarification-required and rework engagements are shown first.', groups.review, payload, - 'review' + 'review', + 'review_page', + review_page, + panel_page_size, + q or '' ) }} {{ panel( @@ -236,7 +275,11 @@ 'Engagements currently moving with the team and not presently waiting in the review queue.', groups.progress, payload, - 'progress' + 'progress', + 'progress_page', + progress_page, + panel_page_size, + q or '' ) }} {{ panel( @@ -244,7 +287,11 @@ 'Completed engagement rows remain available separately for review history and reference.', groups.completed, payload, - 'completed' + 'completed', + 'completed_page', + completed_page, + panel_page_size, + q or '' ) }}