fix approvals after rejection

This commit is contained in:
aminhashemi92 2025-10-04 11:23:31 +03:30
parent f853ad9784
commit 0cfa86bde3
3 changed files with 6 additions and 6 deletions

Binary file not shown.

View file

@ -75,7 +75,6 @@
<i class="bx bx-error-circle me-2"></i> <i class="bx bx-error-circle me-2"></i>
<div> <div>
<div><strong>این گزارش رد شده است.</strong></div> <div><strong>این گزارش رد شده است.</strong></div>
<div class="mt-1 small">علت رد: {{ step_instance.get_latest_rejection.reason }}</div>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -157,7 +156,7 @@
<tr><td colspan="5" class="text-center text-muted">تغییری ثبت نشده است</td></tr> <tr><td colspan="5" class="text-center text-muted">تغییری ثبت نشده است</td></tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table>nvoices/instance/69/step/3/payments/ </table>
</div> </div>
</div> </div>
</div> </div>

View file

@ -378,7 +378,7 @@ class StepInstance(models.Model):
def get_latest_rejection(self): def get_latest_rejection(self):
"""دریافت آخرین رد شدن""" """دریافت آخرین رد شدن"""
return self.rejections.order_by('-created_at').first() return self.rejections.filter(is_deleted=False).order_by('-created_at').first()
# -------- Multi-role approval helpers -------- # -------- Multi-role approval helpers --------
def required_roles(self): def required_roles(self):
@ -386,7 +386,7 @@ class StepInstance(models.Model):
def approvals_by_role(self): def approvals_by_role(self):
decisions = {} decisions = {}
for a in self.approvals.select_related('role').order_by('created_at'): for a in self.approvals.filter(is_deleted=False).select_related('role').order_by('created_at'):
decisions[a.role_id] = 'approved' decisions[a.role_id] = 'approved'
return decisions return decisions
@ -436,6 +436,7 @@ class StepRejection(models.Model):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
"""ذخیره با تغییر وضعیت مرحله""" """ذخیره با تغییر وضعیت مرحله"""
if self.is_deleted == False:
self.step_instance.status = 'rejected' self.step_instance.status = 'rejected'
self.step_instance.save() self.step_instance.save()
super().save(*args, **kwargs) super().save(*args, **kwargs)