first commit
This commit is contained in:
		
						commit
						b71ea45681
					
				
					 898 changed files with 138202 additions and 0 deletions
				
			
		
							
								
								
									
										79
									
								
								processes/views.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								processes/views.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
from django.shortcuts import render, get_object_or_404, redirect
 | 
			
		||||
from django.contrib.auth.decorators import login_required
 | 
			
		||||
from django.contrib import messages
 | 
			
		||||
from django.http import JsonResponse
 | 
			
		||||
from django.views.decorators.http import require_POST
 | 
			
		||||
from .models import Process, ProcessInstance, StepInstance
 | 
			
		||||
from .forms import ProcessInstanceForm
 | 
			
		||||
 | 
			
		||||
@login_required
 | 
			
		||||
def process_list(request):
 | 
			
		||||
    """نمایش لیست فرآیندهای فعال"""
 | 
			
		||||
    processes = Process.objects.filter(is_active=True)
 | 
			
		||||
    return render(request, 'processes/process_list.html', {
 | 
			
		||||
        'processes': processes
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
@login_required
 | 
			
		||||
def process_detail(request, process_id):
 | 
			
		||||
    """نمایش جزئیات فرآیند"""
 | 
			
		||||
    process = get_object_or_404(Process, id=process_id, is_active=True)
 | 
			
		||||
    return render(request, 'processes/process_detail.html', {
 | 
			
		||||
        'process': process
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
@login_required
 | 
			
		||||
def start_process(request, process_id):
 | 
			
		||||
    """شروع فرآیند جدید"""
 | 
			
		||||
    process = get_object_or_404(Process, id=process_id, is_active=True)
 | 
			
		||||
    
 | 
			
		||||
    if request.method == 'POST':
 | 
			
		||||
        form = ProcessInstanceForm(request.POST)
 | 
			
		||||
        if form.is_valid():
 | 
			
		||||
            instance = form.save(commit=False)
 | 
			
		||||
            instance.process = process
 | 
			
		||||
            instance.requester = request.user
 | 
			
		||||
            instance.save()
 | 
			
		||||
            
 | 
			
		||||
            # ایجاد نمونههای مرحله
 | 
			
		||||
            for step in process.steps.all():
 | 
			
		||||
                StepInstance.objects.create(
 | 
			
		||||
                    process_instance=instance,
 | 
			
		||||
                    step=step
 | 
			
		||||
                )
 | 
			
		||||
            
 | 
			
		||||
            # تنظیم مرحله اول به عنوان مرحله فعلی
 | 
			
		||||
            first_step = process.steps.first()
 | 
			
		||||
            if first_step:
 | 
			
		||||
                instance.current_step = first_step
 | 
			
		||||
                instance.status = 'in_progress'
 | 
			
		||||
                instance.save()
 | 
			
		||||
            
 | 
			
		||||
            messages.success(request, f'فرآیند {process.name} با موفقیت شروع شد.')
 | 
			
		||||
            return redirect('processes:instance_detail', instance_id=instance.id)
 | 
			
		||||
    else:
 | 
			
		||||
        form = ProcessInstanceForm()
 | 
			
		||||
    
 | 
			
		||||
    return render(request, 'processes/start_process.html', {
 | 
			
		||||
        'process': process,
 | 
			
		||||
        'form': form
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
@login_required
 | 
			
		||||
def instance_detail(request, instance_id):
 | 
			
		||||
    """نمایش جزئیات نمونه فرآیند"""
 | 
			
		||||
    instance = get_object_or_404(ProcessInstance, id=instance_id)
 | 
			
		||||
    return render(request, 'processes/instance_detail.html', {
 | 
			
		||||
        'instance': instance
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
@login_required
 | 
			
		||||
def my_processes(request):
 | 
			
		||||
    """نمایش فرآیندهای کاربر"""
 | 
			
		||||
    my_instances = ProcessInstance.objects.filter(requester=request.user)
 | 
			
		||||
    assigned_steps = StepInstance.objects.filter(assigned_to=request.user, status='in_progress')
 | 
			
		||||
    
 | 
			
		||||
    return render(request, 'processes/my_processes.html', {
 | 
			
		||||
        'my_instances': my_instances,
 | 
			
		||||
        'assigned_steps': assigned_steps
 | 
			
		||||
    })
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue