diff --git a/app/modules/partners/templates/partners/review_board.html b/app/modules/partners/templates/partners/review_board.html index 3729f8c..a73d832 100644 --- a/app/modules/partners/templates/partners/review_board.html +++ b/app/modules/partners/templates/partners/review_board.html @@ -4,28 +4,178 @@
-

Partner Review Board

Review completed work, blocked tasks, rework and in-progress engagement tasks.

-
+
+

Partner Review Board

+

Engagement-level review queue. Task-level review, rework and history remain available inside each engagement.

+
+
+ + +
-
- {% for column in payload.columns %} -
-

{{ column.label }}

{{ column.hint }}

{{ column.count }}
-
- {% for task in column.tasks %} -
-
{{ task.task_name }}
{{ task.client_display }}
{% if task.is_overdue %}Overdue{% endif %}
-
{{ task.engagement_label }}
-
{{ task.status_label }}{{ task.priority_label }}{{ task.assignee_display }}
- Open Review Details -
- {% else %} -
No items.
- {% endfor %} -
-
+ {# Build engagement-level counts without changing the existing backend payload. #} + {% set metrics = namespace(pending_review=[], clarification_required=[], rework_sent=[], approved=[], completed=[]) %} + {% for column in payload.columns %} + {% for task in column.tasks %} + {% if task.subscription_id %} + {% if column.code == 'pending_review' and task.subscription_id not in metrics.pending_review %} + {% set _ = metrics.pending_review.append(task.subscription_id) %} + {% elif column.code == 'clarification_required' and task.subscription_id not in metrics.clarification_required %} + {% set _ = metrics.clarification_required.append(task.subscription_id) %} + {% elif column.code == 'rework_sent' and task.subscription_id not in metrics.rework_sent %} + {% set _ = metrics.rework_sent.append(task.subscription_id) %} + {% elif column.code == 'approved' and task.subscription_id not in metrics.approved %} + {% set _ = metrics.approved.append(task.subscription_id) %} + {% elif column.code == 'completed' and task.subscription_id not in metrics.completed %} + {% set _ = metrics.completed.append(task.subscription_id) %} + {% endif %} + {% endif %} {% endfor %} + {% endfor %} + +
+
+
Pending Review
+
{{ metrics.pending_review|length }}
+
Engagements with completed work awaiting review
+
+
+
Clarification Required
+
{{ metrics.clarification_required|length }}
+
Engagements with blocked tasks
+
+
+
Rework Sent
+
{{ metrics.rework_sent|length }}
+
Engagements containing rework items
+
+
+
In Progress
+
{{ metrics.approved|length }}
+
Engagements currently moving with the team
+
+
+
Completed
+
{{ metrics.completed|length }}
+
Engagements containing closed tasks
+
+
+ +
+
+ + + + + + + + + + + + + + {% set board = namespace(seen=[]) %} + {% for column in payload.columns %} + {% for task in column.tasks %} + {% if task.subscription_id and task.subscription_id not in board.seen %} + {% set _ = board.seen.append(task.subscription_id) %} + {% set stats = namespace(total=0, completed=0, blocked=0, review=0, rework=0, overdue=false, assignees=[]) %} + {% for stat_column in payload.columns %} + {% for item in stat_column.tasks %} + {% if item.subscription_id == task.subscription_id %} + {% set stats.total = stats.total + 1 %} + {% if (item.status or '')|lower in ['completed', 'not_applicable', 'cancelled'] %} + {% set stats.completed = stats.completed + 1 %} + {% endif %} + {% if (item.status or '')|lower == 'blocked' %} + {% set stats.blocked = stats.blocked + 1 %} + {% endif %} + {% if stat_column.code == 'pending_review' %} + {% set stats.review = stats.review + 1 %} + {% endif %} + {% if stat_column.code == 'rework_sent' %} + {% set stats.rework = stats.rework + 1 %} + {% endif %} + {% if item.is_overdue %} + {% set stats.overdue = true %} + {% endif %} + {% if item.assignee_display and item.assignee_display not in stats.assignees %} + {% set _ = stats.assignees.append(item.assignee_display) %} + {% endif %} + {% endif %} + {% endfor %} + {% endfor %} + + + + + + + + + + + {% endif %} + {% endfor %} + {% endfor %} + + {% if board.seen|length == 0 %} + + + + {% endif %} + +
Client / EngagementStatusTask ProgressReview ItemsAssigned TeamPriority / TargetAction
+ {{ task.client_display }} +
{{ task.engagement_label }}
+
Engagement #{{ task.subscription_id }}
+
+ {% if column.code == 'pending_review' %} + Pending Review + {% elif column.code == 'clarification_required' %} + Clarification Required + {% elif column.code == 'rework_sent' %} + Rework Sent + {% elif column.code == 'approved' %} + In Progress + {% else %} + Completed + {% endif %} + {% if stats.overdue %} +
Overdue item
+ {% endif %} +
+
{{ stats.completed }} / {{ stats.total }}
+
closed task{{ '' if stats.completed == 1 else 's' }} / visible task{{ '' if stats.total == 1 else 's' }}
+
+
+ {% if stats.review %}{{ stats.review }} review{% endif %} + {% if stats.blocked %}{{ stats.blocked }} blocked{% endif %} + {% if stats.rework %}{{ stats.rework }} rework{% endif %} + {% if not stats.review and not stats.blocked and not stats.rework %}No review exception{% endif %} +
+
+ {% for assignee in stats.assignees[:3] %} +
{{ assignee }}
+ {% endfor %} + {% if stats.assignees|length > 3 %} +
+{{ stats.assignees|length - 3 }} more
+ {% endif %} + {% if not stats.assignees %}Unassigned{% endif %} +
+
{{ task.priority_label }}
+
{% if task.internal_target_date %}Target {{ task.internal_target_date }}{% else %}No task target{% endif %}
+
+ Open Review +
No engagement review items found.
+
+
+ +
+ Review remains task-level inside the engagement. This board only groups the existing task records into one engagement row for easier partner navigation.
{% endblock %}