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

View file

@ -378,7 +378,7 @@ class StepInstance(models.Model):
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 --------
def required_roles(self):
@ -386,7 +386,7 @@ class StepInstance(models.Model):
def approvals_by_role(self):
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'
return decisions
@ -436,8 +436,9 @@ class StepRejection(models.Model):
def save(self, *args, **kwargs):
"""ذخیره با تغییر وضعیت مرحله"""
self.step_instance.status = 'rejected'
self.step_instance.save()
if self.is_deleted == False:
self.step_instance.status = 'rejected'
self.step_instance.save()
super().save(*args, **kwargs)
def hard_delete(self):