huge fix
This commit is contained in:
parent
810c87e2e0
commit
b5bf3a5dbe
51 changed files with 2397 additions and 326 deletions
|
|
@ -290,6 +290,10 @@ class ProcessInstance(SluggedModel):
|
|||
dependencies = step.get_dependencies()
|
||||
for dependency_id in dependencies:
|
||||
step_instance = self.step_instances.filter(step_id=dependency_id).first()
|
||||
if step_instance and step_instance.status == 'in_progress' and step_instance.step.order == 3 and step.order == 4:
|
||||
return True
|
||||
if step_instance and step_instance.status == 'approved' and step_instance.step.order == 8 and step.order == 9:
|
||||
return True
|
||||
if not step_instance or step_instance.status != 'completed':
|
||||
return False
|
||||
return True
|
||||
|
|
@ -320,6 +324,7 @@ class StepInstance(models.Model):
|
|||
('skipped', 'رد شده'),
|
||||
('blocked', 'مسدود شده'),
|
||||
('rejected', 'رد شده و نیاز به اصلاح'),
|
||||
('approved', 'تایید اضطراری'),
|
||||
],
|
||||
default='pending',
|
||||
verbose_name="وضعیت"
|
||||
|
|
@ -417,6 +422,7 @@ class StepRejection(models.Model):
|
|||
blank=True
|
||||
)
|
||||
created_at = models.DateTimeField(auto_now_add=True, verbose_name="تاریخ رد شدن")
|
||||
is_deleted = models.BooleanField(default=False, verbose_name='حذف شده')
|
||||
history = HistoricalRecords()
|
||||
|
||||
class Meta:
|
||||
|
|
@ -433,6 +439,14 @@ class StepRejection(models.Model):
|
|||
self.step_instance.save()
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
def hard_delete(self):
|
||||
super().delete()
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
self.is_deleted = True
|
||||
self.save()
|
||||
|
||||
|
||||
|
||||
class StepApproverRequirement(models.Model):
|
||||
"""Required approver roles for a step."""
|
||||
|
|
@ -457,11 +471,20 @@ class StepApproval(models.Model):
|
|||
decision = models.CharField(max_length=8, choices=[('approved', 'تایید'), ('rejected', 'رد')], 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 = 'تاییدهای مرحله'
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
self.is_deleted = True
|
||||
self.save()
|
||||
|
||||
def hard_delete(self):
|
||||
super().delete()
|
||||
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.step_instance} - {self.role} - {self.decision}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue