pytask/taskapp/views/task.py
changeset 556 a0e57ca7cf56
parent 550 a606a40584f7
child 557 a8102f88008c
equal deleted inserted replaced
555:20fe9db8bc81 556:a0e57ca7cf56
   360 
   360 
   361     return shortcuts.render_to_response(
   361     return shortcuts.render_to_response(
   362       "task/approved_task.html", RequestContext(request, context))
   362       "task/approved_task.html", RequestContext(request, context))
   363 
   363 
   364 @login_required
   364 @login_required
   365 def addreviewer(request, task_id):
   365 def addreviewer(request, task_id, template_name='task/addreviewer.html'):
   366 
   366 
   367     user = request.user
   367     user = request.user
   368     profile = user.get_profile()
   368     profile = user.get_profile()
   369 
   369 
   370     task_url = reverse('view_task', kwargs={'task_id': task_id})
   370     task_url = reverse('view_task', kwargs={'task_id': task_id})
   371     task = shortcuts.get_object_or_404(taskapp_models.Task, pk=task_id)
   371     task = shortcuts.get_object_or_404(taskapp_models.Task, pk=task_id)
   372 
   372 
   373     can_mod_reviewers = True if profile.role in [profile_models.ROLES_CHOICES[0][0], profile_models.ROLES_CHOICES[1][0]] else False
   373     if profile.role in [profile_models.ROLES_CHOICES[0][0],
       
   374       profile_models.ROLES_CHOICES[1][0]]:
       
   375         can_mod_reviewers = True
       
   376     else:
       
   377         can_mod_reviewers = False
       
   378 
   374     if not can_mod_reviewers:
   379     if not can_mod_reviewers:
   375         raise http.Http404
   380         raise http.Http404
   376 
   381 
   377     context = {"user": user,
   382     context = {
   378                "profile": profile,
   383       'user': user,
   379                "task": task,
   384       'profile': profile,
   380               }
   385       'task': task,
   381 
   386       }
   382     context.update(csrf(request))
   387 
   383 
   388     context.update(csrf(request))
   384 
   389 
   385     # This part has to be made better
   390 
   386     reviewer_choices = User.objects.filter(is_active=True).\
   391     # TODO(Madhu): This part has to be made better
   387                                            exclude(reviewing_tasks__id=task_id).\
   392     reviewer_choices = User.objects.filter(
   388                                            exclude(claimed_tasks__id=task_id).\
   393       is_active=True).exclude(reviewing_tasks__id=task_id).exclude(
   389                                            exclude(selected_tasks__id=task_id).\
   394       claimed_tasks__id=task_id).exclude(
   390                                            exclude(created_tasks__id=task_id)
   395       selected_tasks__id=task_id).exclude(created_tasks__id=task_id)
   391 
   396 
   392     choices = ((a_user.id,a_user.username) for a_user in reviewer_choices)
   397     choices = ((a_user.id, a_user.username) for a_user in reviewer_choices)
   393     label = "Reviewer"
   398     label = "Reviewer"
   394 
   399 
   395     if request.method == "POST":
   400     if request.method == "POST":
   396         form = taskapp_forms.ChoiceForm(choices, data=request.POST, label=label)
   401         form = taskapp_forms.ChoiceForm(
       
   402           choices, data=request.POST, label=label)
   397         if form.is_valid():
   403         if form.is_valid():
   398             data = form.cleaned_data.copy()
   404             data = form.cleaned_data.copy()
   399             uid = data['choice']
   405             uid = data['choice']
   400             reviewer = User.objects.get(id=uid)
   406             reviewer = User.objects.get(id=uid)
   401 
   407 
   402             task.reviewers.add(reviewer)
   408             task.reviewers.add(reviewer)
   403             return shortcuts.redirect(task_url)
   409             return shortcuts.redirect(task_url)
   404         else:
   410         else:
   405             context.update({"form": form})
   411             context.update({"form": form})
   406             return shortcuts.render_to_response(
   412             return shortcuts.render_to_response(
   407               "task/addreviewer.html", RequestContext(request, context))
   413               template_name, RequestContext(request, context))
   408     else:
   414     else:
   409         form = taskapp_forms.ChoiceForm(choices, label=label)
   415         form = taskapp_forms.ChoiceForm(choices, label=label)
   410         context.update({"form": form})
   416         context.update({"form": form})
   411         return shortcuts.render_to_response(
   417         return shortcuts.render_to_response(
   412           "task/addreviewer.html", RequestContext(request, context))
   418           template_name, RequestContext(request, context))
   413 
   419 
   414 def view_work(request, task_id):
   420 def view_work(request, task_id):
   415 
   421 
   416     task = shortcuts.get_object_or_404(taskapp_models.Task, pk=task_id)
   422     task = shortcuts.get_object_or_404(taskapp_models.Task, pk=task_id)
   417 
   423