Add confirmation and summary
This commit is contained in:
		
							parent
							
								
									9b3973805e
								
							
						
					
					
						commit
						35799b7754
					
				
					 25 changed files with 1419 additions and 265 deletions
				
			
		| 
						 | 
				
			
			@ -9,6 +9,7 @@ from processes.models import ProcessInstance, StepInstance
 | 
			
		|||
from invoices.models import Invoice
 | 
			
		||||
from installations.models import InstallationReport
 | 
			
		||||
from .models import CertificateTemplate, CertificateInstance
 | 
			
		||||
from common.consts import UserRoles
 | 
			
		||||
 | 
			
		||||
from _helpers.jalali import Gregorian
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -78,6 +79,14 @@ def certificate_step(request, instance_id, step_id):
 | 
			
		|||
    next_step = instance.process.steps.filter(order__gt=instance.current_step.order).first() if instance.current_step else None
 | 
			
		||||
 | 
			
		||||
    if request.method == 'POST':
 | 
			
		||||
        # Only broker can approve and finish certificate step
 | 
			
		||||
        try:
 | 
			
		||||
            if not (hasattr(request.user, 'profile') and request.user.profile.has_role(UserRoles.BROKER)):
 | 
			
		||||
                messages.error(request, 'شما مجوز تایید این مرحله را ندارید')
 | 
			
		||||
                return redirect('processes:step_detail', instance_id=instance.id, step_id=step.id)
 | 
			
		||||
        except Exception:
 | 
			
		||||
            messages.error(request, 'شما مجوز تایید این مرحله را ندارید')
 | 
			
		||||
            return redirect('processes:step_detail', instance_id=instance.id, step_id=step.id)
 | 
			
		||||
        cert.approved = True
 | 
			
		||||
        cert.approved_at = timezone.now()
 | 
			
		||||
        cert.save()
 | 
			
		||||
| 
						 | 
				
			
			@ -89,7 +98,10 @@ def certificate_step(request, instance_id, step_id):
 | 
			
		|||
            instance.current_step = next_step
 | 
			
		||||
            instance.save()
 | 
			
		||||
            return redirect('processes:step_detail', instance_id=instance.id, step_id=next_step.id)
 | 
			
		||||
        return redirect('processes:request_list')
 | 
			
		||||
        # Mark the whole process instance as completed on the last step
 | 
			
		||||
        instance.status = 'completed'
 | 
			
		||||
        instance.save()
 | 
			
		||||
        return redirect('processes:instance_summary', instance_id=instance.id)
 | 
			
		||||
 | 
			
		||||
    return render(request, 'certificates/step.html', {
 | 
			
		||||
        'instance': instance,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue