merged
authornishanth
Wed, 24 Feb 2010 13:17:29 +0530
changeset 67 a18d7a0f9b46
parent 66 f670de53402b (diff)
parent 65 8ac0ce6cfd66 (current diff)
child 68 624f9fd438e3
merged
--- a/taskapp/views/task.py	Wed Feb 24 13:13:39 2010 +0530
+++ b/taskapp/views/task.py	Wed Feb 24 13:17:29 2010 +0530
@@ -5,7 +5,7 @@
 
 from pytask.taskapp.models import User, Task, Comment, Claim
 from pytask.taskapp.forms.task import TaskCreateForm, AddMentorForm, AssignTaskForm
-from pytask.taskapp.events.task import createTask, addMentor, publishTask, addSubTask, addClaim, assignTask, getTask
+from pytask.taskapp.events.task import createTask, addMentor, publishTask, addSubTask, addClaim, assignTask, getTask, updateTask
 from pytask.taskapp.views.user import show_msg
 
 ## everywhere if there is no task, django should display 500 message.. but take care of that in sensitive views like add mentor and all
@@ -33,25 +33,31 @@
     task = getTask(tid)
     comments = Comment.objects.filter(task=task)
     mentors = task.mentors.all()
+    subs = task.subs.all()
+    deps = task.deps.all()
     errors = []
     
     is_guest = True if not user.is_authenticated() else False
     is_mentor = True if user in task.mentors.all() else False
-    
-    task_claimable = True if task.status in ["OP", "WR"] else False
-    
     context = {'user':user,
                'task':task,
                'comments':comments,
                'mentors':mentors,
+               'subs':subs,
+               'deps':deps,
                'is_guest':is_guest,
                'is_mentor':is_mentor,
                'errors':errors,
-               }
-               
-    assigned_users = task.assigned_users.all()
-    if assigned_users:
-        context['assigned_users'] = assigned_users
+              }
+
+    context['task_viewable'] = True if ( task.status not in ["UP", "DL"] ) or is_mentor else False
+    context['task_claimable'] = True if task.status in ["OP", "WR"] else False
+
+    context['can_mod_mentors'] = True if task.status in ["UP", "OP", "LO", "WR"] and is_mentor else False
+    context['can_mod_tasks'] = True if task.status in ["UP", "OP", "LO"] and is_mentor else False
+    context['can_assign_credits'] = True if task.status in ["OP", "WR"] and is_mentor else False
+    
+    context['assigned_users'] = task.assigned_users.all()
    
     if request.method == 'POST':
         if not is_guest:
@@ -93,6 +99,7 @@
                         return render_to_response('task/create.html',{'form':form, 'error_msg':error_msg})
                     
                     addMentor(task, user)
+                    updateTask(task,tags_field=data['tags_field'])
                     if publish: publishTask(task)    
                     task_url = '/task/view/tid=%s'%task.id
                     return redirect(task_url)
--- a/templates/task/view.html	Wed Feb 24 13:13:39 2010 +0530
+++ b/templates/task/view.html	Wed Feb 24 13:17:29 2010 +0530
@@ -3,49 +3,73 @@
     {{task.title}}
 {% endblock %}
 {% block content %}
-    <a href="/task/browse/">Browse tasks</a>
-    <h3>{{ task.title }}</h3><br />
-    <!-- we have to write our own datetime.strftime filter and use in the next line -->
-    created by <a href="/user/view/uid={{ task.created_by.id }}">{{ task.created_by.username }}</a> on {{ task.creation_datetime.ctime }}<br />
-    Mentors:
-    {% for mentor in mentors %}
-        <a href="/user/view/uid={{mentor.id}}">{{mentor.username}}|</a>
-    {% endfor %}
-    {% if is_mentor %}
-        <br /><a href="/task/addmentor/tid={{task.id}}">Add another Mentor to this task</a><br />
-        edit task goes here and it should contain all those add subs and add deps depending on availability<br />
-    {% endif %}
-    <hr>
-    <br />Description:<br />
-    <br />{{ task.desc }}<br />
-    <hr>
-    status of task is {{task.status}}<br />
-	{% if assigned_users %}
-		Users working on this task:
-		{% for user in assigned_users %}
-			<a href="/user/view/uid={{user.id}}">{{user.username}}</a>|
-		{% endfor %}
-		<br />
-    {% endif %}
-    {% if not is_guest %}
-        <a href="/task/claim/tid={{task.id}}">View claims</a><br />
-    {% endif %}
-    
-    {% if comments %}
-        <hr />
-        <br/>comments:<br />
-        {% for comment in comments %}
-            <br /><a href="/user/view/uid={{comment.created_by.id}}">{{ comment.created_by.username }}</a> at {{ comment.creation_datetime.ctime }} wrote:<br />
-        {{ comment.data }}<br />
+    {% if task_viewable %}
+        <a href="/task/browse/">Browse tasks</a>
+        <h3>{{ task.title }}</h3><br />
+        <!-- we have to write our own datetime.strftime filter and use in the next line -->
+        created by <a href="/user/view/uid={{ task.created_by.id }}">{{ task.created_by.username }}</a> on {{ task.creation_datetime.ctime }}<br />
+        Mentors:
+        {% for mentor in mentors %}
+            <a href="/user/view/uid={{mentor.id}}">{{mentor.username}}|</a>
         {% endfor %}
-    {% endif %}
+        {% if can_mod_mentors %}
+            <br /><a href="/task/addmentor/tid={{task.id}}">Add another Mentor to this task</a><br />
+            edit task goes here and it should contain all those add subs and add deps depending on availability<br />
+        {% endif %}
 
-    {% if not is_guest %}
-        <br />Add comment:<br />
-        <form action="" method="post">
-        <!-- we might even want to use forms here -->
-        <textarea  name="data"></textarea><br />
-        <input type="submit" value="Submit">
-        </form>
+        {%  if deps %}
+            <br />The task has following dependencies
+            {% for dep in deps %}
+                <a href="/task/view/tid={{dep.id}}">{{dep.title}}</a><br />
+            {% endfor %}
+            {% if can_mod_tasks %}
+                <a href="/task/addtask/tid={{task.id}}">add more tasks</a>
+                <a href="/task/remtask/tid={{task.id}}">remove an existing task</a>
+            {% endif %}
+        {% else %}
+            {%if can_mod_tasks %}
+                <a href="/task/addtask/tid={{task.id}}">add a subtask/dependency </a>
+            {%endif%}
+        {% endif %}
+        
+        <hr>
+        <br />Description:<br />
+        <br />{{ task.desc }}<br />
+        <hr>
+        
+        status of task is {{task.status}}<br />
+        {% if assigned_users %}
+            Users working on this task:
+            {% for user in assigned_users %}
+                <a href="/user/view/uid={{user.id}}">{{user.username}}</a>|
+            {% endfor %}
+            <br />
+        {% endif %}
+        {%if can_assign_credits%}
+            <a href="/task/assigncredits/tid={{task.id}}">Assign credits</a>
+        {%endif%}
+        {% if not is_guest %}
+            <a href="/task/claim/tid={{task.id}}">View claims</a><br />
+        {% endif %}
+        
+        {% if comments %}
+            <hr />
+            <br/>comments:<br />
+            {% for comment in comments %}
+                <br /><a href="/user/view/uid={{comment.created_by.id}}">{{ comment.created_by.username }}</a> at {{ comment.creation_datetime.ctime }} wrote:<br />
+            {{ comment.data }}<br />
+            {% endfor %}
+        {% endif %}
+
+        {% if not is_guest %}
+            <br />Add comment:<br />
+            <form action="" method="post">
+            <!-- we might even want to use forms here -->
+            <textarea  name="data"></textarea><br />
+            <input type="submit" value="Submit">
+            </form>
+        {% endif %}
+    {% else %}
+        You are not authorised to view this task. <a href="/task/browse/">click here</a> to return to browsing the tasks.
     {% endif %}
 {% endblock %}