コード例 #1
0
ファイル: views.py プロジェクト: jmstaley/timetracker
def add_task(request):
    if request.method == 'POST':
        form = AddTaskForm(data=request.POST)
        if form.is_valid():
            new_task = form.save(commit=False)
            new_task.author = request.user
            new_task.save()
            return HttpResponseRedirect(new_task.get_absolute_url())
    else:
        form = AddTaskForm()
    return render_to_response('timetracker/add_task.html',
                              {'form': form},
                              context_instance = RequestContext(request))
コード例 #2
0
ファイル: views.py プロジェクト: LeoVanNierop/todo-app
def addtask(request):
    form = AddTaskForm(request.POST)
    if request.user.is_authenticated():
        if form.is_valid():
            list = request.user.list_set.filter(listname=form.cleaned_data['list'])
            if not list:
                return HttpResponse("list name not found", status=400)
            newtask = form.save()
            return HttpResponse(json.dumps([]))
        else:
            return HttpResponse("form validation failed" + str(form.errors), status=400)
    else:
        return HttpResponse("Url is only available to logged in users", status=401)        
コード例 #3
0
def tasks(request, project_pk=None):
    completed_task_list = Task.objects.for_user(request.user).filter(completed=True).order_by('-completion_date')
    pending_task_list = Task.objects.for_user(request.user).filter(completed=False)
    project_list = Project.objects.for_user(request.user).filter(completed=False)

    if not project_pk and 'tasks_latest_project_pk' in request.session:
        #print reverse('view-tasks', int(request.session['tasks_latest_project_pk']))
        return HttpResponseRedirect("/tasks/%s/" % request.session['tasks_latest_project_pk'])
    elif project_pk == 'all':
        project_pk = None

    if project_pk:
        project = get_object_or_404(Project, pk=project_pk)
        completed_task_list = completed_task_list.filter(project=project)
        pending_task_list = pending_task_list.filter(project=project)
        initial = {'project': project.pk}
        request.session['tasks_latest_project_pk'] = project.pk
    else:
        project = None
        initial = {}

    TaskListFormSet = modelformset_factory(Task, fields=('completed',), extra=0)


    if request.POST and 'task_list-INITIAL_FORMS' in request.POST:
        task_list_formset = TaskListFormSet(request.POST, queryset=pending_task_list, prefix='task_list')
        if task_list_formset.is_valid():
            task_list_formset.save()
            return HttpResponseRedirect(request.path_info)
    else:
        task_list_formset = TaskListFormSet(queryset=pending_task_list, prefix='task_list')

    if request.POST and 'addtask-task' in request.POST:
        task_form = AddTaskForm(request.POST, prefix='addtask')
        if task_form.is_valid():
            task = task_form.save()
            return HttpResponseRedirect(request.path_info)
    else:
        task_form = AddTaskForm(prefix='addtask', initial=initial)


    data = {
        'project': project,
        'completed_task_list': completed_task_list,
        'project_list': project_list,
        'task_form': task_form,
        'task_list_formset': task_list_formset,
    }
    return render_to_response('projectmanager/tasks.html', data)
コード例 #4
0
def edit_task(request, task_id):
    """
    Edit a task.

    If user is trying to edit someone else's task (should not be possible via
    UI) then send 403 error.

    """
    saved_task = Task.objects.get(id=task_id)
    # Avoid getting a SimpleLazyObject
    current_user = (request.user._wrapped
                    if hasattr(request.user, '_wrapped') else request.user)

    is_user_task_author = False
    task_edited = False
    form_errors = None

    if current_user == saved_task.user:
        is_user_task_author = True

    if request.method == "POST":
        if not is_user_task_author:
            raise PermissionDenied
        task_form = AddTaskForm(data=request.POST, instance=saved_task)
        if task_form.is_valid():
            task = task_form.save(commit=False)
            # Get radio button values from POST data as we're re-using the
            # AddTaskForm
            task.is_done = True if int(request.POST["task_status"]) else False
            task.is_hidden = True if int(request.POST["is_hidden"]) else False
            task.save()
            task_edited = True
        else:
            form_errors = str(task_form.errors)
    else:
        task_form = AddTaskForm()

    return render(
        request, "edit_task.html", {
            "task_form": task_form,
            "task_edited": task_edited,
            "task": saved_task,
            "form_errors": form_errors,
            "is_user_task_author": is_user_task_author
        })
コード例 #5
0
def add_task(request):
    """Add a task"""
    task_added = False
    form_errors = None
    if request.method == "POST":
        task_form = AddTaskForm(data=request.POST)
        if task_form.is_valid():
            task = task_form.save(commit=False)
            task.user = request.user
            task.save()
            task_added = True
        else:
            form_errors = str(task_form.errors)
    else:
        task_form = AddTaskForm()

    return render(
        request, "add_task.html", {
            "task_form": task_form,
            "task_added": task_added,
            "form_errors": form_errors
        })