taskapp/views/task.py
changeset 151 d0cb85ba462a
parent 149 3395960549e8
child 153 925af1b4ee65
equal deleted inserted replaced
150:604808d27483 151:d0cb85ba462a
     1 from datetime import datetime
     1 from datetime import datetime
     2 
     2 
     3 from django.http import HttpResponse
     3 from django.http import HttpResponse, Http404
     4 from django.shortcuts import render_to_response, redirect
     4 from django.shortcuts import render_to_response, redirect
     5 
     5 
     6 from pytask.taskapp.models import User, Task, Comment, Claim, Credit, Request
     6 from pytask.taskapp.models import User, Task, Comment, Claim, Credit, Request
     7 from pytask.taskapp.utilities.task import getTask
     7 from pytask.taskapp.utilities.task import getTask
     8 from pytask.taskapp.forms.task import TaskCreateForm, AddMentorForm, AddTaskForm, ChoiceForm, AssignCreditForm, RemoveUserForm
     8 from pytask.taskapp.forms.task import TaskCreateForm, AddMentorForm, AddTaskForm, ChoiceForm, AssignCreditForm, RemoveUserForm
   175             user_list.remove(a_user)
   175             user_list.remove(a_user)
   176 
   176 
   177         for req in user_pending_requests:
   177         for req in user_pending_requests:
   178             user_list.remove(req.sent_to.all()[0])
   178             user_list.remove(req.sent_to.all()[0])
   179             
   179             
   180         non_mentors = ((_.id,_.username) for _ in user_list)
   180         non_mentors = ((_.id, _.username) for _ in user_list)
       
   181         non_mentor_ids = [ str(a_user.id) for a_user in user_list ]
   181         ## code till must be made elegant and not brute force like above
   182         ## code till must be made elegant and not brute force like above
   182 
   183 
   183         form = AddMentorForm(non_mentors)
   184         form = AddMentorForm(non_mentors)
       
   185 
       
   186         context = {
       
   187             'user':user,
       
   188             'pending_requests':pending_requests,
       
   189             'form':form,
       
   190         }
       
   191 
   184         if request.method == "POST":
   192         if request.method == "POST":
   185             uid = request.POST['mentor']
   193             data = request.POST
   186             new_mentor = User.objects.get(id=uid)
   194             uid = data.get('mentor', None)
   187             reqMentor(task, new_mentor, user)
   195             if uid in non_mentor_ids:
   188             return redirect(task_url)
   196                 new_mentor = User.objects.get(id=int(uid))
   189         else:
   197                 reqMentor(task, new_mentor, user)
   190             return render_to_response('task/addmentor.html', {'user':user,'pending_requests':pending_requests,'form':form, 'errors':errors})
   198                 return redirect('/task/addmentor/tid=%s'%task.id)
   191         
   199             else:
       
   200                 ## bogus post request
       
   201                 raise Http404
       
   202         else:
       
   203             return render_to_response('task/addmentor.html', context)
   192     else:
   204     else:
   193         return show_msg(user, 'You are not authorised to add mentors for this task', task_url, 'view the task')
   205         return show_msg(user, 'You are not authorised to add mentors for this task', task_url, 'view the task')
   194     
   206     
   195 def add_tasks(request, tid):
   207 def add_tasks(request, tid):
   196     """ first display tasks which can be subtasks for the task and do the rest.
   208     """ first display tasks which can be subtasks for the task and do the rest.