taskapp/views/task.py
changeset 159 a74a32a5a3e1
parent 158 c43e0114e593
child 160 05157d35d66f
--- a/taskapp/views/task.py	Mon Mar 01 05:18:44 2010 +0530
+++ b/taskapp/views/task.py	Mon Mar 01 05:41:12 2010 +0530
@@ -283,29 +283,41 @@
     is_guest = True if not user.is_authenticated() else False
     if (not is_guest) and user in task.mentors.all():
 
-        deps, subs = task.deps, task.subs
-        task_list = deps if task.sub_type == "D" else subs
+        if task.status in ["UP", "LO", "OP"]:
+            
+            deps, subs = task.deps, task.subs
+            task_list = deps if task.sub_type == "D" else subs
 
-        if task_list:
-            choices = [(_.id,_.title) for _ in task_list ]
-            form = ChoiceForm(choices)
+            if task_list:
+                choices = [(_.id,_.title) for _ in task_list ]
+                form = ChoiceForm(choices)
 
-            errors = []
+                errors = []
+                
+                context = {
+                    'user':user,
+                    'task':task,
+                    'form':form,
+                }
 
-            if request.method == "POST":
-                data = request.POST
-                if not data.get('choice', None): errors.append("Please choose a task to remove.")
-                if not errors:
-                    tid = data['choice']
-                    sub_task = getTask(tid)
-                    removeTask(task, sub_task)
-                    return redirect(task_url)
+                if request.method == "POST":
+                    data = request.POST
+                    if not data.get('choice', None):
+                        errors.append("Please choose a task to remove.")
+                        context['errors'] = errors
+                    if not errors:
+                        tid = data['choice']
+                        sub_task = getTask(tid)
+                        removeTask(task, sub_task)
+                        return redirect(task_url)
+                    else:
+                        return render_to_response('task/removetask.html', context)
                 else:
-                    return render_to_response('task/removetask.html', {'user':user, 'form':form, 'errors':errors})
+                    return render_to_response('task/removetask.html', context)
             else:
-                return render_to_response('task/removetask.html', {'user':user, 'form':form, 'errors':errors})
+                return show_msg(user, "The task has no subtasks/dependencies to be removed", task_url, "view the task")
         else:
-            return show_msg(user, "The task has no subtasks/dependencies to be removed", task_url, "view the task")
+            return show_msg(user, "subtasks/dependencies cannot be removed at this stage", task_url, "view the task")
     else:
         return show_msg(user, "You are not authorised to do this", task_url, "view the task")
 
@@ -583,6 +595,6 @@
             else:
                 return render_to_response('task/close.html', context)
         else:
-            return show_msg(user, "The task is already closed or the task cannot be closed at this stage", task_url, "view the task")
+            return show_msg(user, "The task is either already closed or cannot be closed at this stage", task_url, "view the task")
     else:
         return show_msg(user, "You are not authorised to do this", task_url, "view the task")