コード例 #1
0
ファイル: tests.py プロジェクト: eykanal/pm
    def test_new_task_form(self):
        # test full submit
        data1 = {
            'project': Project.objects.values_list('pk', flat=True).get(pk=1),
            'name': 'test',
            'description':
            'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.',
            'start_date': date.today(),
            'due_date': date.today(),
            'date_complete': date.today(),
            'status': Task.ACTIVE,
            'worker':
            (2, ),  # Tom's ID, still not sure how it wants me to pass it in
        }
        t1 = TaskForm(data1, project_id=1)
        self.assertTrue(t1.is_valid())

        # test only required fields
        data2 = {
            'project': Project.objects.values_list('pk', flat=True).get(pk=1),
            'name': 'test',
            'start_date': date.today(),
            'status': Task.ACTIVE,
            'worker': (2, ),  # Tom's ID, same as above
        }
        t2 = TaskForm(data2, project_id=1)
        self.assertTrue(t2.is_valid())
コード例 #2
0
def edit_task(request):
    form = TaskForm(request.POST, project_id=request.POST['project'])
    if form.is_valid():

        t = Task.objects.get(pk=form.cleaned_data['pk'])
        t.name = form.cleaned_data['name']
        t.description = form.cleaned_data['description']
        t.start_date = form.cleaned_data['start_date']
        t.due_date = form.cleaned_data['due_date']
        t.date_complete = form.cleaned_data['date_complete']
        t.status_on_hold = form.cleaned_data['status_on_hold']
        t.status_waiting = form.cleaned_data['status_waiting']
        t.save()

        TaskWorker.objects.filter(task=t.pk).delete()
        for w in form.cleaned_data['worker']:
            tw = TaskWorker(
                task=Task.objects.get(pk=t.id),
                worker=Worker.objects.get(person=w, project=form.cleaned_data['project']),
            )
            tw.save()

        TaskDependency.objects.filter(blocked_task=t.pk).delete()
        if form.cleaned_data.get('blocked_by'):
            for d in form.cleaned_data['blocked_by']:
                td = TaskDependency(
                    blocking_task=d,
                    blocked_task=t,
                )
                td.save()

        return {'success': True}

    return {'failure': '%s' % form._errors}
コード例 #3
0
def create_task(request):
    pk = request.POST['project']
    form = TaskForm(request.POST, project_id=pk)
    if form.is_valid():

        # save task itself
        t = Task(
            project=form.cleaned_data['project'],
            name=form.cleaned_data['name'],
            description=form.cleaned_data['description'],
            start_date=form.cleaned_data['start_date'],
            due_date=form.cleaned_data['due_date'],
            status_on_hold=form.cleaned_data['status_on_hold'],
            status_waiting=form.cleaned_data['status_waiting'],)
        t.save()

        # save workers (note that "w" here is a Person, not a Worker)
        for w in form.cleaned_data['worker']:
            tw = TaskWorker(
                task=Task.objects.get(pk=t.id),
                worker=Worker.objects.get(person=w, project=form.cleaned_data['project']),
            )
            tw.save()

        # save dependencies
        for d in form.cleaned_data['blocked_by']:
            td = TaskDependency(
                blocking_task=d,
                blocked_task=Task.objects.get(pk=t.id)
            )
            td.save()

        return {'success': True}

    form_html = render_crispy_form(form, context=RequestContext(request))
    return {'success': False, 'form_html': form_html}
コード例 #4
0
def project_detail(request, pk):
    context = RequestContext(request)
    project = Project.objects.get(pk=pk)
    taskform = TaskForm(project_id=pk, initial={'project': pk})
    return render_to_response("pm/project_detail.html", {'project': project, 'taskform': taskform}, context)