main flow checked
This commit is contained in:
parent
b5bf3a5dbe
commit
f853ad9784
21 changed files with 365 additions and 89 deletions
|
|
@ -387,7 +387,7 @@ class StepInstance(models.Model):
|
|||
def approvals_by_role(self):
|
||||
decisions = {}
|
||||
for a in self.approvals.select_related('role').order_by('created_at'):
|
||||
decisions[a.role_id] = a.decision
|
||||
decisions[a.role_id] = 'approved'
|
||||
return decisions
|
||||
|
||||
def is_fully_approved(self) -> bool:
|
||||
|
|
@ -409,6 +409,7 @@ class StepRejection(models.Model):
|
|||
related_name='rejections',
|
||||
verbose_name="نمونه مرحله"
|
||||
)
|
||||
role = models.ForeignKey(Role, on_delete=models.SET_NULL, blank=True, null=True, verbose_name="نقش")
|
||||
rejected_by = models.ForeignKey(
|
||||
User,
|
||||
on_delete=models.CASCADE,
|
||||
|
|
@ -431,7 +432,7 @@ class StepRejection(models.Model):
|
|||
ordering = ['-created_at']
|
||||
|
||||
def __str__(self):
|
||||
return f"رد شدن {self.step_instance} توسط {self.rejected_by.get_full_name()}"
|
||||
return f"رد شدن {self.step_instance} توسط {self.rejected_by.get_full_name()} ({self.role.name})"
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
"""ذخیره با تغییر وضعیت مرحله"""
|
||||
|
|
@ -447,7 +448,6 @@ class StepRejection(models.Model):
|
|||
self.save()
|
||||
|
||||
|
||||
|
||||
class StepApproverRequirement(models.Model):
|
||||
"""Required approver roles for a step."""
|
||||
step = models.ForeignKey(ProcessStep, on_delete=models.CASCADE, related_name='approver_requirements', verbose_name="مرحله")
|
||||
|
|
@ -466,15 +466,13 @@ class StepApproverRequirement(models.Model):
|
|||
class StepApproval(models.Model):
|
||||
"""Approvals per role for a concrete step instance."""
|
||||
step_instance = models.ForeignKey(StepInstance, on_delete=models.CASCADE, related_name='approvals', verbose_name="نمونه مرحله")
|
||||
role = models.ForeignKey(Role, on_delete=models.CASCADE, verbose_name="نقش")
|
||||
role = models.ForeignKey(Role, on_delete=models.SET_NULL, blank=True, null=True, verbose_name="نقش")
|
||||
approved_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name="تاییدکننده")
|
||||
decision = models.CharField(max_length=8, choices=[('approved', 'تایید'), ('rejected', 'رد')], verbose_name='نتیجه')
|
||||
reason = models.TextField(blank=True, verbose_name='علت (برای رد)')
|
||||
reason = models.TextField(blank=True, verbose_name='توضیحات')
|
||||
created_at = models.DateTimeField(auto_now_add=True, verbose_name='تاریخ')
|
||||
is_deleted = models.BooleanField(default=False, verbose_name='حذف شده')
|
||||
|
||||
class Meta:
|
||||
unique_together = ('step_instance', 'role')
|
||||
verbose_name = 'تایید مرحله'
|
||||
verbose_name_plural = 'تاییدهای مرحله'
|
||||
|
||||
|
|
@ -487,4 +485,4 @@ class StepApproval(models.Model):
|
|||
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.step_instance} - {self.role} - {self.decision}"
|
||||
return f"{self.step_instance} - {self.role} - تایید شده"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue