示例#1
0
文件: views.py 项目: samirotiv/erp
def add_intra_task(request, primkey=None):
    #Get Parent Task
    if primkey:
	#Need to figure out the try, except block here
        parenttask = Task.objects.get(pk=primkey)
        parentlabel = "\nParent task: " + parenttask.subject
    else:
        parentlabel = "\nThis is a top level task."
	parenttask = None
        
    userprofile = request.user.get_profile()
    department = userprofile.dept
    title = "Add Intradepartmental Task"
    info = parentlabel
    
    if request.method == 'POST':
        form = IntraTaskForm(department, request.POST)
        if form.is_valid():
            newTask = form.save(commit=False)

            #Set the origin & target departments & approve the task.        
            newTask.origindept = userprofile.dept
            newTask.targetdept = userprofile.dept
            newTask.taskcreator = userprofile
            newTask.taskstatus = 'O'
            newTask.parenttask = parenttask
            
            #For many to many relationships to be created, the object MUST first exist in the database.
            newTask.save()
            #UNCOMMENT THE BELOW LINE IF MANYTOMANY DATA IS BEING SAVED DIRECTLY FROM THE FORM
            #form.save_m2m()
                    
            #Get the TaskForce from the form
            cores = form.cleaned_data['cores']
            coords = form.cleaned_data['coords']
            supercoords = form.cleaned_data['supercoords']
            
            #Set the TaskForce for the Task
            for user in coords: 
                newTask.taskforce.add(user)
            for user in supercoords: 
                newTask.taskforce.add(user)
            for user in cores: 
                newTask.taskforce.add(user)
        
            newTask.save()        
            return HttpResponse ("Task Saved")
        else:
            return render_to_response ('tasks/task.html', {'form': form, 'title':title, 'info':info }, context_instance=RequestContext(request))
    
    else:
        form = IntraTaskForm(department)
        context = {'form': form, 'title':title }
        return render_to_response('tasks/task.html', context, context_instance=RequestContext(request))
示例#2
0
def edit_task(request, primkey):
    task = Task.objects.get(pk=primkey)
    userprofile = request.user.get_profile()
    department = userprofile.dept
    
    #Get Parent Task
    if task.parenttask:
        parentlabel = "\nParent task: " + task.parenttask.subject
    else:
        parentlabel = "\nThis is a top level task."
        
        
        

#___________----INTRADEPARTMENTAL TASK EDIT----__________________
    if ((task.isxdepartmental == False) and (task.origindept == department)):
        title = "Edit Intradepartmental Task"
        info = parentlabel
        if request.method == 'POST':
            form = IntraTaskForm(department, request.POST, instance=task)
            if form.is_valid():
                form.save()
                        
                #Get the TaskForce from the form
                cores = form.cleaned_data['cores']
                coords = form.cleaned_data['coords']
                supercoords = form.cleaned_data['supercoords']
                
                #Set the TaskForce for the Task
                task.taskforce.clear()
                
                for user in coords: 
                    task.taskforce.add(user)
                for user in supercoords: 
                    task.taskforce.add(user)
                for user in cores: 
                    task.taskforce.add(user)

                task.save()
                messages.success(request, "Intra-departmental Task was edited and saved")
                return redirect('dash.views.dash_view', permanent=True)
            else:
                #Render the form along with all its errors.
                return render_to_response ('tasks/task_temp.html', {'form': form, 'title':title , 'info':info, 'primkey': primkey, 'info':info }, context_instance=RequestContext(request))
        
        else:
            form = IntraTaskForm(department, instance=task)
            context = {'form': form, 'title':title }
            return render_to_response('tasks/task_temp.html', context, context_instance=RequestContext(request))
            




#___________----CROSSDEPARTMENTAL TASK EDIT----__________________

#TODO: 
#For the target core's beenfit, display the ASSIGNED SUBDEPARTMENT in the Approval Page.
#As of now, he has the freedom to assign the task to users from other subdepartments too.

    elif (task.isxdepartmental == True) and (core_check(request.user)):
        if request.method == 'POST':
            #For the originating department's core
            if (task.taskstatus == 'U') and (task.origindept == department):
                title = "Edit Crossdepartmental Task"
                info = "Allowed only until approved by the target department's core." + parentlabel
                form = CrossTaskForm(department, request.POST, instance=task)
                if form.is_valid():
                    form.save()
              
                    #Set the Target Department        
                    for subdept in task.targetsubdepts.all():
                        task.targetdept = subdept.dept
                
                    task.save()
                    messages.success(request, "Cross-departmental Task was edited and saved")
                    return redirect('dash.views.dash_view', permanent=True)
                else:
                    #Render the form again with all its errors.
                    return render_to_response ('tasks/task_temp.html', {'form': form, 'title':title, 'info': info  }, context_instance=RequestContext(request))
            
            #For the target department's core:
            if task.targetdept == department:
                #Getting the targetsubdept. There is only one. The loop will run only once.
                for subdept in task.targetsubdepts:
                    targetsubdept = subdept
                title = "Edit/Approve Crossdepartmental Task"
                info = "Submitting the task here automatically approves & assigns it to the selected workforce.\n<b>Target Subdepartment Requested for the Task: " + targetsubdept + "</b>" + parentlabel
                form = IntraTaskForm(department, request.POST, instance=task)
                if form.is_valid():
                    form.save()
                
                    #Get the TaskForce from the form
                    cores = form.cleaned_data['cores']
                    coords = form.cleaned_data['coords']
                    supercoords = form.cleaned_data['supercoords']
                    
                    #Set the TaskForce for the Task
                    task.taskforce.clear()
                    
                    for user in coords: 
                        task.taskforce.add(user)
                    for user in supercoords: 
                        task.taskforce.add(user)
                    for user in cores: 
                        task.taskforce.add(user)
                    
                    #Approve the task.
                    task.taskstatus = 'O'

                    task.save()
                    
                    messages.success(request, "Cross-departmental Task was edited, approved and saved")
                    return redirect('dash.views.dash_view', permanent=True) 
                else:
                    #Render the form again with all its errors.
                    return render_to_response ('tasks/task_temp.html', {'form': form, 'title':title , 'info': info  }, context_instance=RequestContext(request))
            
            else:
                messages.error(request, "There seems to have been some error. Please mention this to us !")
                return redirect('dash.views.dash_view', permanent=True)
                
        else:
            #For the originating department's core
            if (task.taskstatus == 'U') and (task.origindept == department):
                title = "Edit Crossdepartmental Task"
                info = "Allowed only until approved by the target department's core."
                form = CrossTaskForm (department, instance=task)
                context = {'form': form, 'title':title , 'info': info }
                return render_to_response('tasks/task_temp.html', context, context_instance=RequestContext(request))
            
            #For the target department's core:
            if task.targetdept == department:
                #Getting the targetsubdept. There is only one. The loop will run only once.
                for subdept in task.targetsubdepts:
                    targetsubdept = subdept
                title = "Edit/Approve Crossdepartmental Task"
                info = "Submitting the task here automatically approves & assigns it to the selected workforce.\n<b>Target Subdepartment Requested for the Task: " + targetsubdept + "</b>"
                form = IntraTaskForm(department, instance=task)
                context = {'form': form, 'title':title , 'info': info }
                return render_to_response('tasks/task_temp.html', context, context_instance=RequestContext(request))
                
            else:
                messages.error(request, "There seems to have been some error. Please mention this to us !")
                return redirect('dash.views.dash_view', permanent=True)
    else: 
        messages.error(request, "There seems to have been some error. Please mention this to us !")
        return redirect('dash.views.dash_view', permanent=True)
示例#3
0
def new_intra_task(request, serializedform=None, primkey=None):
    """
        Serves and processes a new intradepartmental task.
         - if processing error, shows errors on same form
         - if no error, shows success alert
        
        CORES and SUPERS :
            Have access to edit and add tasks
            
        Arguments :
            serializedform - in post request, the form is sent
            primkey - prinkey of parent task (if any)
        
        Fields entered by user:
            '******', 'subject', 'description', 'taskforce'
        
        Fields automatically taken care of by model/model save function override:
            'taskcreator', 'datecreated', 'datelastmodified', 'depthlevel', 'parenttask'
        
        Fields taken care of by the view:
            'targetsubdepts', 'origindept', 'targetdept', 'isxdepartmental', 'taskstatus'
    """
    dajax = Dajax()
    
    print ("Primkey: %s" % primkey)

    # Check parent task and create parent-string
    if primkey:
        # Need to figure out the try, except block here
        parenttask = Task.objects.get(pk=primkey)
        parentlabel = "\nParent task: " + parenttask.subject
    else:
        parentlabel = "\nThis is a top level task."
        parenttask = None
    
    # Get basic data
    id_form = "new_task"
    userprofile = request.user.get_profile()
    department = userprofile.dept
    title = "Add Intradepartmental Task"
    info = parentlabel
    
    if request.method == 'POST' and serializedform != None:
        form = IntraTaskForm(department, deserialize_form(serializedform)) # get form
        if form.is_valid(): # check validity
            newTask = form.save(commit=False)
            
            #Set the origin & target departments & approve the task.        
            newTask.origindept = userprofile.dept
            newTask.targetdept = userprofile.dept
            newTask.taskcreator = userprofile
            newTask.taskstatus = 'O'
            newTask.parenttask = parenttask
            
            #For many to many relationships to be created, the object MUST first exist in the database.
            newTask.save()
            #UNCOMMENT THE BELOW LINE IF MANYTOMANY DATA IS BEING SAVED DIRECTLY FROM THE FORM
            #form.save_m2m()
                    
            #Get the TaskForce from the form
            cores = form.cleaned_data['cores']
            coords = form.cleaned_data['coords']
            supercoords = form.cleaned_data['supercoords']
            
            #Set the TaskForce for the Task
            for user in coords: 
                newTask.taskforce.add(user)
            for user in supercoords: 
                newTask.taskforce.add(user)
            for user in cores: 
                newTask.taskforce.add(user)
        
            newTask.save() # task saved
            
            dajax.remove_css_class('#form_' + str(id_form) + ' input', 'error') # remove earlier errors mentioned
            show_alert(dajax, 'success', "Task saved successfully") # show alert
        else: # some errors found 
            errors = True
            dajax.remove_css_class('#form_' + str(id_form) + ' input', 'error')
            for error in form.errors: # tell which parts had errors
                dajax.add_css_class('#id_%s' % error, 'error')
            print [error for error in form.errors]
            show_alert(dajax, 'error', "There were some errors : please rectify them") # show alert
示例#4
0
文件: views.py 项目: samirotiv/erp
def edit_task(request, primkey):
    task = Task.objects.get(pk=primkey)
    userprofile = request.user.get_profile()
    department = userprofile.dept
    
    #Get Parent Task
    if task.parenttask:
        parentlabel = "\nParent task: " + task.parenttask.subject
    else:
        parentlabel = "\nThis is a top level task."

#___________----INTRADEPARTMENTAL TASK EDIT----__________________
    if ((task.isxdepartmental == False) and (task.origindept == department)):
        title = "Edit Intradepartmental Task"
        info = parentlabel
        if request.method == 'POST':
            form = IntraTaskForm(department, request.POST, instance=task)
            if form.is_valid():
                form.save()
                        
                #Get the TaskForce from the form
                cores = form.cleaned_data['cores']
                coords = form.cleaned_data['coords']
                supercoords = form.cleaned_data['supercoords']
                
                #Set the TaskForce for the Task
                task.taskforce.clear()
                
                for user in coords: 
                    task.taskforce.add(user)
                for user in supercoords: 
                    task.taskforce.add(user)
                for user in cores: 
                    task.taskforce.add(user)

                task.save()        
                return HttpResponse ("Task Saved")
            else:
                #Render the form along with all its errors.
                return render_to_response ('tasks/task.html', {'form': form, 'title':title , 'info':info }, context_instance=RequestContext(request))
        
        else:
            form = IntraTaskForm(department, instance=task)
            context = {'form': form, 'title':title }
            return render_to_response('tasks/task.html', context, context_instance=RequestContext(request))
            
#___________----CROSSDEPARTMENTAL TASK EDIT----__________________

#TODO: 
#For the target core's beenfit, display the ASSIGNED SUBDEPARTMENT in the Approval Page.
#As of now, he has the freedom to assign the task to users from other subdepartments too.

    elif (task.isxdepartmental == True) and (core_check(request.user)):
        if request.method == 'POST':
            #For the originating department's core
            if (task.taskstatus == 'U') and (task.origindept == department):
                title = "Edit Crossdepartmental Task"
                info = "Allowed only until approved by the target department's core." + parentlabel
                form = CrossTaskForm(department, request.POST, instance=task)
                if form.is_valid():
                    form.save()
              
                    #Set the Target Department        
                    for subdept in task.targetsubdepts.all():
                        task.targetdept = subdept.dept
                
                    task.save()
                    return HttpResponse ("Task Saved")
                else:
                    #Render the form again with all its errors.
                    return render_to_response ('tasks/task.html', {'form': form, 'title':title, 'info': info  }, context_instance=RequestContext(request))
            
            #For the target department's core:
            if task.targetdept == department:
                #Getting the targetsubdept. There is only one. The loop will run only once.
                for subdept in task.targetsubdepts:
                    targetsubdept = subdept
                title = "Edit/Approve Crossdepartmental Task"
                info = "Submitting the task here automatically approves & assigns it to the selected workforce.\n<b>Target Subdepartment Requested for the Task: " + targetsubdept + "</b>" + parentlabel
                form = IntraTaskForm(department, request.POST, instance=task)
                if form.is_valid():
                    form.save()
                
                    #Get the TaskForce from the form
                    cores = form.cleaned_data['cores']
                    coords = form.cleaned_data['coords']
                    supercoords = form.cleaned_data['supercoords']
                    
                    #Set the TaskForce for the Task
                    task.taskforce.clear()
                    
                    for user in coords: 
                        task.taskforce.add(user)
                    for user in supercoords: 
                        task.taskforce.add(user)
                    for user in cores: 
                        task.taskforce.add(user)
                    
                    #Approve the task.
                    task.taskstatus = 'O'

                    task.save()        
                    return HttpResponse ("Task Saved/Approved.")
                else:
                    #Render the form again with all its errors.
                    return render_to_response ('tasks/task.html', {'form': form, 'title':title , 'info': info  }, context_instance=RequestContext(request))
            
            else:
                return HttpResponse ("Pack.")
                
        else:
            #For the originating department's core
            if (task.taskstatus == 'U') and (task.origindept == department):
                title = "Edit Crossdepartmental Task"
                info = "Allowed only until approved by the target department's core."
                form = CrossTaskForm (department, instance=task)
                context = {'form': form, 'title':title , 'info': info }
                return render_to_response('tasks/task.html', context, context_instance=RequestContext(request))
            
            #For the target department's core:
            if task.targetdept == department:
                #Getting the targetsubdept. There is only one. The loop will run only once.
                for subdept in task.targetsubdepts:
                    targetsubdept = subdept
                title = "Edit/Approve Crossdepartmental Task"
                info = "Submitting the task here automatically approves & assigns it to the selected workforce.\n<b>Target Subdepartment Requested for the Task: " + targetsubdept + "</b>"
                form = IntraTaskForm(department, instance=task)
                context = {'form': form, 'title':title , 'info': info }
                return render_to_response('tasks/task.html', context, context_instance=RequestContext(request))
                
            else:
                return HttpResponse ("Pack.")

    else: 
        return HttpResponse ("Pack.")