pytask/taskapp/views.py
changeset 112 4cc40503bf3c
parent 111 1cc8d0b2eefb
child 115 181d4eb9f419
equal deleted inserted replaced
111:1cc8d0b2eefb 112:4cc40503bf3c
    61     
    61     
    62     task_url = "/task/view/tid=%s"%tid
    62     task_url = "/task/view/tid=%s"%tid
    63     task = getTask(tid)
    63     task = getTask(tid)
    64 
    64 
    65     user = request.user
    65     user = request.user
       
    66 
       
    67     if not user.is_authenticated():
       
    68         return render_to_response("/task/view.html", {"task": task})
       
    69 
    66     profile = user.get_profile()
    70     profile = user.get_profile()
    67 
    71 
    68     context = {"user": user,
    72     context = {"user": user,
    69                "profile": profile,
    73                "profile": profile,
    70                "task": task,
    74                "task": task,
    73     context.update(csrf(request))
    77     context.update(csrf(request))
    74 
    78 
    75     if task.status == "DL":
    79     if task.status == "DL":
    76         return show_msg(user, 'This task no longer exists', '/task/browse/','browse the tasks')
    80         return show_msg(user, 'This task no longer exists', '/task/browse/','browse the tasks')
    77 
    81 
       
    82     task_viewable = True if ( task.status != "UP" ) or profile.rights != "CT"\
       
    83                          else False
       
    84     if not task_viewable:
       
    85         return show_msg(user, "You are not authorised to view this task", "/task/browse/", "browse the tasks")
       
    86 
       
    87     reviewers = task.reviewers.all()
       
    88     is_reviewer = True if user in task.reviewers.all() else False
    78     comments = task.comments.filter(is_deleted=False).order_by('comment_datetime')
    89     comments = task.comments.filter(is_deleted=False).order_by('comment_datetime')
    79     reviewers = task.reviewers.all()
       
    80 
    90 
    81     is_guest = True if not user.is_authenticated() else False
    91     context.update({'is_reviewer':is_reviewer,
    82     is_reviewer = True if user in task.reviewers.all() else False
       
    83 
       
    84     context.update({'is_guest':is_guest,
       
    85                     'is_reviewer':is_reviewer,
       
    86                     'comments':comments,
    92                     'comments':comments,
    87                     'reviewers':reviewers,
    93                     'reviewers':reviewers,
    88                    })
    94                    })
    89 
    95 
    90     claimed_users = task.claimed_users.all()
    96     claimed_users = task.claimed_users.all()
       
    97     selected_users = task.selected_users.all()
    91 
    98 
       
    99     is_creator = True if user == task.created_by else False
       
   100     has_claimed = True if user in claimed_users else False
    92 
   101 
    93 #    is_requested_reviewer = True if user.is_authenticated() and user.request_sent_to.filter(is_valid=True,is_replied=False,role="MT",task=task) else False
   102     context['is_selected'] = True if user in selected_users else False
    94 #    task_viewable = True if ( task.status != "UP" ) or is_reviewer or is_requested_reviewer else False
   103     context['can_approve'] = True if task.status == "UP" and\
    95 #    if not task_viewable:
   104                                      profile.rights in ["MG", "DC"]\
    96 #        return show_msg(user, "You are not authorised to view this task", "/task/browse/", "browse the tasks")
   105                                      else False
    97 
   106     context['can_edit'] = True if is_creator else False
    98 #    context['is_requested_reviewer'] = is_requested_reviewer
       
    99 
       
   100     context['can_publish'] = True if task.status == "UP" and user == task.created_by else False
       
   101     context['can_edit'] = True if task.status == "UP" and is_reviewer else False
       
   102     context['can_close'] = True if task.status not in ["UP", "CD", "CM"] and is_reviewer else False
   107     context['can_close'] = True if task.status not in ["UP", "CD", "CM"] and is_reviewer else False
   103     context['can_delete'] = True if task.status == "UP" and user == task.created_by else False
   108     context['can_delete'] = True if task.status == "UP" and is_creator else False
   104 
       
   105     context['can_mod_reviewers'] = True if task.status in ["UP", "OP", "LO", "WR"] and is_reviewer else False
       
   106     context['can_mod_tasks'] = True if task.status in ["UP", "OP", "LO"] and is_reviewer else False
       
   107 
   109 
   108     context['can_assign_pynts'] = True if task.status in ["OP", "WR"] and is_reviewer else False
   110     context['can_assign_pynts'] = True if task.status in ["OP", "WR"] and is_reviewer else False
   109     context['task_claimable'] = True if task.status in ["OP", "WR"] and not is_guest else False
   111     context['task_claimable'] = True if task.status in ["OP", "WR"] else False
       
   112 
       
   113     context['can_comment'] = True if task.status != "UP" or\
       
   114                                      profile.rights!="CT" else False
   110 
   115 
   111 #    if task.status == "CD":
   116 #    if task.status == "CD":
   112 #        context['closing_notification'] =  Notification.objects.filter(task=task,role="CD")[0]
   117 #        context['closing_notification'] =  Notification.objects.filter(task=task,role="CD")[0]
   113 #    elif task.status == "CM":
   118 #    elif task.status == "CM":
   114 #        context['completed_notification'] =  Notifications.objects.filter(task=task,role="CM")[0]
   119 #        context['completed_notification'] =  Notifications.objects.filter(task=task,role="CM")[0]
   115 #    elif task.status == "WR":
   120 #    elif task.status == "WR":
   116 #        context['assigned_users'] = task.assigned_users.all()
   121 #        context['assigned_users'] = task.assigned_users.all()
   117    
   122    
   118     if request.method == 'POST':
   123     if request.method == 'POST':
   119         if not is_guest:
   124         form = TaskCommentForm(request.POST)
   120             form = TaskCommentForm(request.POST)
   125         if form.is_valid():
   121             if form.is_valid():
   126             data = form.cleaned_data['data']
   122                 data = form.cleaned_data['data']
   127             new_comment = TaskComment(task=task, data=data,
   123                 new_comment = TaskComment(task=task, data=data,
   128                                       uniq_key=make_key(TaskComment),
   124                                           uniq_key=make_key(TaskComment),
   129                                       commented_by=user, comment_datetime=datetime.now())
   125                                           commented_by=user, comment_datetime=datetime.now())
   130             new_comment.save()
   126                 new_comment.save()
   131             return redirect(task_url)
   127                 return redirect(task_url)
       
   128             else:
       
   129                 context['form'] = form
       
   130                 return render_to_response('task/view.html', context)
       
   131         else:
   132         else:
   132             return redirect(task_url)
   133             context['form'] = form
       
   134             return render_to_response('task/view.html', context)
   133     else:
   135     else:
   134         form = TaskCommentForm()
   136         form = TaskCommentForm()
   135         context['form'] = form
   137         context['form'] = form
   136         return render_to_response('task/view.html', context)
   138         return render_to_response('task/view.html', context)
   137 
   139