pytask/taskapp/views/task.py
changeset 11 d28fcc644fbb
parent 10 c2001db39937
child 14 f2623fb8041a
equal deleted inserted replaced
10:c2001db39937 11:d28fcc644fbb
     1 from datetime import datetime
     1 from datetime import datetime
     2 
     2 
     3 from django.http import HttpResponse
     3 from django.http import HttpResponse
     4 from django.shortcuts import render_to_response, redirect
     4 from django.shortcuts import render_to_response, redirect
       
     5 
     5 from pytask.taskapp.models import Task, Comment
     6 from pytask.taskapp.models import Task, Comment
       
     7 from pytask.taskapp.forms.task import TaskCreateForm
       
     8 from pytask.taskapp.events.task import createTask, addMentor, publishTask
       
     9 from pytask.taskapp.views.user import show_msg
     6 
    10 
     7 def browse_tasks(request):
    11 def browse_tasks(request):
     8     """ display all the tasks """
    12     """ display all the tasks """
     9     
    13     
    10     user = request.user
    14     user = request.user
    48         else:
    52         else:
    49             errors.append("You must be logged in to post a comment")
    53             errors.append("You must be logged in to post a comment")
    50             return render_to_response('task/view.html', context)
    54             return render_to_response('task/view.html', context)
    51     else:
    55     else:
    52         return render_to_response('task/view.html', context)
    56         return render_to_response('task/view.html', context)
       
    57         
       
    58 def create_task(request):
       
    59     """ check for rights and create a task if applicable.
       
    60     if user cannot create a task, redirect to homepage.
       
    61     """
       
    62     
       
    63     user = request.user
       
    64     is_guest = True if not user.is_authenticated() else False
       
    65     
       
    66     if not is_guest:
       
    67         user_profile = user.get_profile()
       
    68         can_create_task = False if user_profile.rights == "CT" else True
       
    69         if can_create_task:
       
    70             if request.method == "POST":
       
    71                 form = TaskCreateForm(request.POST)
       
    72                 if form.is_valid():
       
    73                     data = form.cleaned_data
       
    74                     title = data['title']
       
    75                     desc = data['desc']
       
    76                     credits = data['credits']
       
    77                     publish = data['publish']
       
    78                     task = createTask(title,desc,user,credits)
       
    79                     
       
    80                     if not task:
       
    81                         error_msg = "Another task with the same title exists"
       
    82                         return render_to_response('task/create.html',{'form':form, 'error_msg':error_msg})
       
    83                     
       
    84                     addMentor(task, user)
       
    85                     if publish: publishTask(task)    
       
    86                     task_url = '/task/view/tid=%s'%task.id
       
    87                     return redirect(task_url)
       
    88                 else:
       
    89                     return render_to_response('task/create.html',{'form':form})
       
    90             else:
       
    91                 form = TaskCreateForm()
       
    92                 return render_to_response('task/create.html',{'form':form})
       
    93         else:
       
    94             return show_msg('You are not authorised to create a task.')
       
    95     else:
       
    96         return show_msg('You are not authorised to create a task.')
       
    97     
       
    98     
       
    99     
       
   100     
       
   101     
       
   102     
       
   103     
       
   104     
       
   105     
       
   106     
       
   107     
       
   108     
       
   109     
       
   110