def set_all_task_info(request, task_id, user_id): task = get_object_or_404(Tasks, id=task_id) user = User.objects.get(id=user_id) if request.method == "POST": set_all_task_info_form = SetAllTaskInfoForUserstyleForm(request.POST, user=user, task=task) if set_all_task_info_form.is_valid(): task.First_date_deadline = set_all_task_info_form.cleaned_data.get('date', None) task.Second_date_deadline = set_all_task_info_form.cleaned_data.get('s_date', None) priority = set_all_task_info_form.cleaned_data.get('priority', 0) if set_all_task_info_form.user_tasks: if priority > set_all_task_info_form.user_tasks.latest('Priority').Priority+1: priority = set_all_task_info_form.user_tasks.latest('Priority').Priority+1 else: priority = 1 task.Priority = priority if priority is not None else 0 more_description = set_all_task_info_form.cleaned_data.get('more_description', '') task.Description += '\n' + more_description if more_description is not None else '' if priority != 0 and set_all_task_info_form.user_tasks: for tsk in set_all_task_info_form.user_tasks: if tsk.Priority >= priority: tsk.Priority += 1 tsk.save() task.User = user task.save() if user != request.user: text = request.user.username.encode("utf-8") + _(u" дал задание <a href=/task/") + str(task.id).encode("utf-8") + \ "/>" + task.Title.encode("utf-8") + "</a>" event_type = EventTypes.objects.filter(Src_name='task') event = Events(User=user, Text=text, Type=event_type[0], Src_id=task.id) event.save() return HttpResponseRedirect('/task/task_list/' + str(task.Project.id) + '/') else: set_all_task_info_form = SetAllTaskInfoForUserstyleForm(user=user, task=task) template = get_template("set_all_task_info_for_userstyle.html") context = RequestContext(request, { 'task': task, 'set_all_task_info_form': set_all_task_info_form, }) return HttpResponse(template.render(context))
def change_task_state(request, task_id, state): if not request.user.is_authenticated(): return HttpResponseRedirect('/welcome/') task = get_object_or_404(Tasks, id=task_id) if request.user == task.User: if state != 1 and state != 2 and state != 5: if task.State.id != 2: if ((task.State.id == 1) or (task.State.id == 3) or (task.State.id == 5)) and (int(state) == 4): task.State_id = state task.Last_change_date = datetime.datetime.now() task.save() state_name = State_Task.objects.get(id=4) text = request.user.username.encode("utf-8") + _(u" изменил статус задания <a href=/task/").encode("utf-8")+ str(task.id) \ + "/> " + task.Title.encode("utf-8")+(u" </a> на ").encode("utf-8") + state_name.State_Name.encode("utf-8") event_type = EventTypes.objects.filter(Src_name='task') event = Events(User=task.Project.Owner, Text=text, Type=event_type[0], Src_id=task.id) event.save() elif (task.State.id == 1 or task.State.id == 4 or task.State.id == 5) and int(state) == 3: task.State_id = state task.Last_change_date = datetime.datetime.now() task.save() if request.user == task.Project.Owner: if state != 2: if ((task.State.id == 1) or (task.State.id == 3) or (task.State.id == 4) or (task.State.id == 5)) and int(state) == 2: task.State_id = state task.Last_change_date = datetime.datetime.now() task.save() elif (task.State.id == 2 or task.State.id == 4) and int(state) == 5: task.State_id = state task.Last_change_date = datetime.datetime.now() task.save() else: return HttpResponseRedirect("/task/" + str(task.id) + "/") return HttpResponseRedirect("/task/" + str(task.id) + "/")