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 |