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. |