pytask/taskapp/views.py
changeset 112 4cc40503bf3c
parent 111 1cc8d0b2eefb
child 115 181d4eb9f419
--- a/pytask/taskapp/views.py	Sun Jan 09 00:53:51 2011 +0530
+++ b/pytask/taskapp/views.py	Sun Jan 09 08:37:28 2011 +0530
@@ -63,6 +63,10 @@
     task = getTask(tid)
 
     user = request.user
+
+    if not user.is_authenticated():
+        return render_to_response("/task/view.html", {"task": task})
+
     profile = user.get_profile()
 
     context = {"user": user,
@@ -75,38 +79,39 @@
     if task.status == "DL":
         return show_msg(user, 'This task no longer exists', '/task/browse/','browse the tasks')
 
-    comments = task.comments.filter(is_deleted=False).order_by('comment_datetime')
-    reviewers = task.reviewers.all()
+    task_viewable = True if ( task.status != "UP" ) or profile.rights != "CT"\
+                         else False
+    if not task_viewable:
+        return show_msg(user, "You are not authorised to view this task", "/task/browse/", "browse the tasks")
 
-    is_guest = True if not user.is_authenticated() else False
+    reviewers = task.reviewers.all()
     is_reviewer = True if user in task.reviewers.all() else False
+    comments = task.comments.filter(is_deleted=False).order_by('comment_datetime')
 
-    context.update({'is_guest':is_guest,
-                    'is_reviewer':is_reviewer,
+    context.update({'is_reviewer':is_reviewer,
                     'comments':comments,
                     'reviewers':reviewers,
                    })
 
     claimed_users = task.claimed_users.all()
-
+    selected_users = task.selected_users.all()
 
-#    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
-#    task_viewable = True if ( task.status != "UP" ) or is_reviewer or is_requested_reviewer else False
-#    if not task_viewable:
-#        return show_msg(user, "You are not authorised to view this task", "/task/browse/", "browse the tasks")
+    is_creator = True if user == task.created_by else False
+    has_claimed = True if user in claimed_users else False
 
-#    context['is_requested_reviewer'] = is_requested_reviewer
-
-    context['can_publish'] = True if task.status == "UP" and user == task.created_by else False
-    context['can_edit'] = True if task.status == "UP" and is_reviewer else False
+    context['is_selected'] = True if user in selected_users else False
+    context['can_approve'] = True if task.status == "UP" and\
+                                     profile.rights in ["MG", "DC"]\
+                                     else False
+    context['can_edit'] = True if is_creator else False
     context['can_close'] = True if task.status not in ["UP", "CD", "CM"] and is_reviewer else False
-    context['can_delete'] = True if task.status == "UP" and user == task.created_by else False
-
-    context['can_mod_reviewers'] = True if task.status in ["UP", "OP", "LO", "WR"] and is_reviewer else False
-    context['can_mod_tasks'] = True if task.status in ["UP", "OP", "LO"] and is_reviewer else False
+    context['can_delete'] = True if task.status == "UP" and is_creator else False
 
     context['can_assign_pynts'] = True if task.status in ["OP", "WR"] and is_reviewer else False
-    context['task_claimable'] = True if task.status in ["OP", "WR"] and not is_guest else False
+    context['task_claimable'] = True if task.status in ["OP", "WR"] else False
+
+    context['can_comment'] = True if task.status != "UP" or\
+                                     profile.rights!="CT" else False
 
 #    if task.status == "CD":
 #        context['closing_notification'] =  Notification.objects.filter(task=task,role="CD")[0]
@@ -116,20 +121,17 @@
 #        context['assigned_users'] = task.assigned_users.all()
    
     if request.method == 'POST':
-        if not is_guest:
-            form = TaskCommentForm(request.POST)
-            if form.is_valid():
-                data = form.cleaned_data['data']
-                new_comment = TaskComment(task=task, data=data,
-                                          uniq_key=make_key(TaskComment),
-                                          commented_by=user, comment_datetime=datetime.now())
-                new_comment.save()
-                return redirect(task_url)
-            else:
-                context['form'] = form
-                return render_to_response('task/view.html', context)
+        form = TaskCommentForm(request.POST)
+        if form.is_valid():
+            data = form.cleaned_data['data']
+            new_comment = TaskComment(task=task, data=data,
+                                      uniq_key=make_key(TaskComment),
+                                      commented_by=user, comment_datetime=datetime.now())
+            new_comment.save()
+            return redirect(task_url)
         else:
-            return redirect(task_url)
+            context['form'] = form
+            return render_to_response('task/view.html', context)
     else:
         form = TaskCommentForm()
         context['form'] = form