コード例 #1
0
ファイル: views.py プロジェクト: pombredanne/Workgroup
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))
コード例 #2
0
ファイル: views.py プロジェクト: pombredanne/Workgroup
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) + "/")