pytask/taskapp/views.py
author Nishanth Amuluru <nishanth@fossee.in>
Sat, 08 Jan 2011 22:57:30 +0530
changeset 102 0f9d485609ac
parent 101 bce480ff6ddc
child 111 1cc8d0b2eefb
permissions -rwxr-xr-x
fixed a few bugs
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
101
bce480ff6ddc used proper import for show_msg
Nishanth Amuluru <nishanth@fossee.in>
parents: 95
diff changeset
    11
from pytask.views import show_msg
95
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    12
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    13
from pytask.taskapp.models import Task
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    14
from pytask.taskapp.forms import CreateTaskForm, EditTaskForm
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    15
from pytask.profile.utils import get_notification
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    16
101
bce480ff6ddc used proper import for show_msg
Nishanth Amuluru <nishanth@fossee.in>
parents: 95
diff changeset
    17
95
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    18
@login_required
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    19
def create_task(request):
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    20
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    21
    user = request.user
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    22
    profile = user.get_profile()
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    23
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    24
    context = {"user": user,
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    25
               "profile": profile,
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    26
              }
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
    context.update(csrf(request))
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    29
102
0f9d485609ac fixed a few bugs
Nishanth Amuluru <nishanth@fossee.in>
parents: 101
diff changeset
    30
    can_create_task = False if profile.rights == "CT" else True
95
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    31
    if can_create_task:
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    32
        if request.method == "POST":
102
0f9d485609ac fixed a few bugs
Nishanth Amuluru <nishanth@fossee.in>
parents: 101
diff changeset
    33
            form = CreateTaskForm(request.POST)
95
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    34
            if form.is_valid():
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    35
                data = form.cleaned_data.copy()
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    36
                data.update({"created_by": user,
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    37
                             "creation_datetime": datetime.now(),
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    38
                             "uniq_key": make_key(Task),
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    39
                            })
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    40
                
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    41
                task = Task(**data)
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    42
                task.save()
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    43
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    44
                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
    45
                return redirect(task_url)
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    46
            else:
102
0f9d485609ac fixed a few bugs
Nishanth Amuluru <nishanth@fossee.in>
parents: 101
diff changeset
    47
                context.update({'form':form})
0f9d485609ac fixed a few bugs
Nishanth Amuluru <nishanth@fossee.in>
parents: 101
diff changeset
    48
                return render_to_response('task/create.html', context)
95
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    49
        else:
102
0f9d485609ac fixed a few bugs
Nishanth Amuluru <nishanth@fossee.in>
parents: 101
diff changeset
    50
            form = CreateTaskForm()
0f9d485609ac fixed a few bugs
Nishanth Amuluru <nishanth@fossee.in>
parents: 101
diff changeset
    51
            context.update({'form':form})
0f9d485609ac fixed a few bugs
Nishanth Amuluru <nishanth@fossee.in>
parents: 101
diff changeset
    52
            return render_to_response('task/create.html', context)
95
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    53
    else:
eb3a191850a1 created a view for create task
Nishanth Amuluru <nishanth@fossee.in>
parents: 69
diff changeset
    54
        return show_msg(user, 'You are not authorised to create a task.')