pytask/taskapp/views.py
author Nishanth Amuluru <nishanth@fossee.in>
Sat, 08 Jan 2011 22:37:31 +0530
changeset 95 eb3a191850a1
parent 69 c6bca38c1cbf
child 101 bce480ff6ddc
permissions -rwxr-xr-x
created a view for create task
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
95
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     1
from datetime import datetime
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     2
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     3
from django.shortcuts import render_to_response, redirect
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     4
from django.http import Http404
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     5
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     6
from django.contrib.auth.decorators import login_required
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     7
from django.core.context_processors import csrf
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     8
from django.views.decorators.csrf import csrf_protect
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
     9
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    10
from pytask.utils import make_key
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    11
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    12
from pytask.taskapp.models import Task
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    13
from pytask.taskapp.forms import CreateTaskForm, EditTaskForm
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    14
from pytask.profile.utils import get_notification
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    15
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    16
@login_required
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    17
def create_task(request):
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    18
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    19
    user = request.user
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    20
    profile = user.get_profile()
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    21
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    22
    context = {"user": user,
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    23
               "profile": profile,
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    24
              }
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    25
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    26
    context.update(csrf(request))
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    27
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    28
    can_create_task = False if user_profile.rights == "CT" else True
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    29
    if can_create_task:
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    30
        if request.method == "POST":
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    31
            form = TaskCreateForm(request.POST)
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    32
            if form.is_valid():
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    33
                data = form.cleaned_data.copy()
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    34
                data.update({"created_by": user,
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    35
                             "creation_datetime": datetime.now(),
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    36
                             "uniq_key": make_key(Task),
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    37
                            })
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    38
                
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    39
                task = Task(**data)
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    40
                task.save()
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    41
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    42
                task_url = '/task/view/tid=%s'%task.uniq_key
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    43
                return redirect(task_url)
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    44
            else:
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    45
                return render_to_response('task/create.html',{'user':user, 'form':form})
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    46
        else:
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    47
            form = TaskCreateForm()
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    48
            return render_to_response('task/create.html',{'user':user, 'form':form})
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    49
    else:
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    50
        return show_msg(user, 'You are not authorised to create a task.')