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))
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)
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)
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 })
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 })