Compare commits

..

No commits in common. "af3b043a4624ebe2de1ff50abd2b28d339c04ff6" and "20c5f13ea004471c83aadee6e4fb1f620a7077b0" have entirely different histories.

2 changed files with 3 additions and 11 deletions

Binary file not shown.

View file

@ -897,18 +897,10 @@ def final_settlement_step(request, instance_id, step_id):
# Ensure step instance exists # Ensure step instance exists
step_instance, _ = StepInstance.objects.get_or_create(process_instance=instance, step=step, defaults={'status': 'in_progress'}) step_instance, _ = StepInstance.objects.get_or_create(process_instance=instance, step=step, defaults={'status': 'in_progress'})
# Build approver statuses for template (include reason to display in UI) # Build approver statuses for template
reqs = list(step.approver_requirements.select_related('role').all()) reqs = list(step.approver_requirements.select_related('role').all())
approvals = list(step_instance.approvals.select_related('role').all()) approvals_map = {a.role_id: a.decision for a in 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_map.get(r.role_id)} for r in reqs]
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 # dynamic permission to control approve/reject UI
try: try:
user_roles_qs = getattr(getattr(request.user, 'profile', None), 'roles', Role.objects.none()) user_roles_qs = getattr(getattr(request.user, 'profile', None), 'roles', Role.objects.none())