From 3b61931bf0a9de64f3ae9d3c7aa16db6ffac586e Mon Sep 17 00:00:00 2001 From: aminhashemi92 Date: Sat, 13 Sep 2025 17:12:52 +0330 Subject: [PATCH] fix showing rejection reason --- db.sqlite3 | Bin 3149824 -> 3182592 bytes invoices/views.py | 14 +++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/db.sqlite3 b/db.sqlite3 index b3c2c854148917eb4018ad6bb49f6fd507365a4c..a9d6a516bc20b193d43323de6bd04b2a4753819a 100644 GIT binary patch delta 42310 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 delta 7507 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 DBrk2N diff --git a/invoices/views.py b/invoices/views.py index 7e01a51..455f9ea 100644 --- a/invoices/views.py +++ b/invoices/views.py @@ -897,10 +897,18 @@ def final_settlement_step(request, instance_id, step_id): # Ensure step instance exists step_instance, _ = StepInstance.objects.get_or_create(process_instance=instance, step=step, defaults={'status': 'in_progress'}) - # Build approver statuses for template + # Build approver statuses for template (include reason to display in UI) reqs = list(step.approver_requirements.select_related('role').all()) - approvals_map = {a.role_id: a.decision for a in step_instance.approvals.select_related('role').all()} - approver_statuses = [{'role': r.role, 'status': approvals_map.get(r.role_id)} for r in reqs] + approvals = list(step_instance.approvals.select_related('role').all()) + approvals_by_role = {a.role_id: a for a in approvals} + approver_statuses = [ + { + 'role': r.role, + 'status': (approvals_by_role.get(r.role_id).decision if approvals_by_role.get(r.role_id) else None), + 'reason': (approvals_by_role.get(r.role_id).reason if approvals_by_role.get(r.role_id) else ''), + } + for r in reqs + ] # dynamic permission to control approve/reject UI try: user_roles_qs = getattr(getattr(request.user, 'profile', None), 'roles', Role.objects.none())