From db61f3571123340c5134a019394a966352fe930c Mon Sep 17 00:00:00 2001 From: aminhashemi92 Date: Thu, 9 Oct 2025 11:24:00 +0330 Subject: [PATCH] add approve need to request list --- db.sqlite3 | Bin 4141056 -> 4198400 bytes .../templates/processes/request_list.html | 15 +++++- processes/views.py | 47 ++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/db.sqlite3 b/db.sqlite3 index 4408b1574e76d1d3d1df86cb50aebc3e32334e1a..5a406d66a376e28ddbec659f2fdeeb27a234ff7c 100644 GIT binary patch delta 48628 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 RHkk2jms@3in3c&g00135FCPE^ delta 10192 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 diff --git a/processes/templates/processes/request_list.html b/processes/templates/processes/request_list.html index eee1727..1ae210a 100644 --- a/processes/templates/processes/request_list.html +++ b/processes/templates/processes/request_list.html @@ -223,11 +223,24 @@ {{ item.instance.code }} {{ item.instance.process.name }} - + {% if item.instance.status == 'completed' %} {{ item.instance.current_step.name|default:"--" }} {% elif item.instance.current_step %} {{ item.instance.current_step.name }} + {% if item.current_step_approval_status %} +
+ + {% if item.current_step_approval_status.status == 'rejected' %} + + {% elif item.current_step_approval_status.status == 'approved' %} + + {% else %} + + {% endif %} + {{ item.current_step_approval_status.display }} + + {% endif %} {% else %} -- {% endif %} diff --git a/processes/views.py b/processes/views.py index 372c8e7..5bcb38c 100644 --- a/processes/views.py +++ b/processes/views.py @@ -134,6 +134,52 @@ def request_list(request): except Exception: emergency_approved = False + # Get current step approval status + current_step_approval_status = None + if instance.current_step: + try: + current_step_instance = instance.step_instances.filter(step=instance.current_step).first() + if current_step_instance: + # Check if this step requires approvals + required_roles = current_step_instance.required_roles() + if required_roles: + # Get approvals by role + approvals_by_role = current_step_instance.approvals_by_role() + + # Check for rejections + latest_rejection = current_step_instance.get_latest_rejection() + if latest_rejection and current_step_instance.status == 'rejected': + role_name = latest_rejection.role.name if latest_rejection.role else 'نامشخص' + current_step_approval_status = { + 'status': 'rejected', + 'role': role_name, + 'display': f'رد شده توسط {role_name}' + } + else: + # Check approval status + pending_roles = [] + approved_roles = [] + for role in required_roles: + if approvals_by_role.get(role.id) == 'approved': + approved_roles.append(role.name) + else: + pending_roles.append(role.name) + + if pending_roles: + current_step_approval_status = { + 'status': 'pending', + 'roles': pending_roles, + 'display': f'در انتظار تایید {" و ".join(pending_roles)}' + } + elif approved_roles and not pending_roles: + current_step_approval_status = { + 'status': 'approved', + 'roles': approved_roles, + 'display': f'تایید شده توسط {" و ".join(approved_roles)}' + } + except Exception: + current_step_approval_status = None + instances_with_progress.append({ 'instance': instance, 'progress_percentage': round(progress_percentage), @@ -142,6 +188,7 @@ def request_list(request): 'installation_scheduled_date': installation_scheduled_date, 'installation_overdue_days': overdue_days, 'emergency_approved': emergency_approved, + 'current_step_approval_status': current_step_approval_status, }) # Summary stats for header cards