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