summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNishanth Amuluru2011-01-05 23:51:10 +0530
committerNishanth Amuluru2011-01-05 23:51:10 +0530
commit94562031fcfbf0b8cb9d8dcdcb275c893fe68095 (patch)
treef3bc7a344dbb292eb79f4535f7103b336a17c86b
parentdfc9b3caf56c119d10c002c321a8fcd1d7ff8406 (diff)
downloadpytask-94562031fcfbf0b8cb9d8dcdcb275c893fe68095.tar.gz
pytask-94562031fcfbf0b8cb9d8dcdcb275c893fe68095.tar.bz2
pytask-94562031fcfbf0b8cb9d8dcdcb275c893fe68095.zip
added a submit_report link for each task
-rw-r--r--taskapp/forms/task.py7
-rw-r--r--taskapp/models.py10
-rw-r--r--taskapp/views/task.py30
-rw-r--r--templates/task/report.html7
-rw-r--r--templates/task/view.html1
-rw-r--r--urls.py1
6 files changed, 54 insertions, 2 deletions
diff --git a/taskapp/forms/task.py b/taskapp/forms/task.py
index f76bfd5..44773e2 100644
--- a/taskapp/forms/task.py
+++ b/taskapp/forms/task.py
@@ -1,5 +1,5 @@
from django import forms
-from pytask.taskapp.models import Task
+from pytask.taskapp.models import Task, WorkReport
class TaskCreateForm(forms.ModelForm):
class Meta:
@@ -99,3 +99,8 @@ def RemoveUserForm(choices, instance=None):
reason = forms.CharField(min_length=1, required=True)
return myForm(instance) if instance else myForm()
+class WorkReportForm(forms.ModelForm):
+
+ class Meta:
+ model = WorkReport
+ fields = ['remarks', 'attachment']
diff --git a/taskapp/models.py b/taskapp/models.py
index 173a5df..f618279 100644
--- a/taskapp/models.py
+++ b/taskapp/models.py
@@ -169,5 +169,15 @@ class Notification(models.Model):
def __unicode__(self):
return u"%s %s %s"%(self.sent_to, self.message, self.sent_date.ctime())
+class WorkReport(models.Model):
+
+ attachment = models.FileField(upload_to = UPLOADS_DIR, blank = False)
+ remarks = models.TextField()
+ revision = models.PositiveIntegerField(default=0)
+ task = models.ForeignKey(Task, related_name = "%(class)s_report")
+ submitted_by = models.ForeignKey(Task, related_name = "%(class)s_submitted_by")
+
+ created_at = models.DateTimeField()
+
#tagging.register(Profile)
#tagging.register(Task)
diff --git a/taskapp/views/task.py b/taskapp/views/task.py
index 396ba5d..9a956a6 100644
--- a/taskapp/views/task.py
+++ b/taskapp/views/task.py
@@ -5,7 +5,7 @@ from django.shortcuts import render_to_response, redirect
from pytask.taskapp.models import User, Task, Comment, Request, Notification
from pytask.taskapp.utilities.task import getTask
-from pytask.taskapp.forms.task import TaskCreateForm, AddReviewerForm, AddTaskForm, ChoiceForm, AssignPyntForm, RemoveUserForm, EditTaskForm, ClaimTaskForm
+from pytask.taskapp.forms.task import TaskCreateForm, AddReviewerForm, AddTaskForm, ChoiceForm, AssignPyntForm, RemoveUserForm, EditTaskForm, ClaimTaskForm, WorkReportForm
from pytask.taskapp.events.task import createTask, reqReviewer, publishTask, addSubTask, addDep, addClaim, assignTask, updateTask, removeTask, removeUser, assignPynts, completeTask, closeTask, addReviewer, deleteTask
from pytask.taskapp.views.user import show_msg
from pytask.taskapp.utilities.user import get_user
@@ -39,6 +39,34 @@ def show_textbooks(request):
}
return render_to_response('task/browse.html', context)
+def upload_work(request, tid):
+ """ Check if the work is in WR state and the user is in assigned_users.
+ """
+
+ task_url = "/task/view/tid=%s"%tid
+
+ user = get_user(request.user) if request.user.is_authenticated() else request.user
+ task = getTask(tid)
+
+ if not task.status == "WR":
+ return show_msg(user, "The task is not in a stage to upload content", task_url, "view the task")
+
+ if not user in task.assigned_users.all():
+ return show_msg(user, "You are not authorised to upload data to this task", task_url, "view the task")
+
+
+ context = {
+ 'user':user,
+ 'task':task,
+ }
+
+ if request.method == "POST":
+ pass
+ else:
+ form = WorkReportForm()
+ return render_to_response('task/report.html', context)
+
+
def publish_task(request, tid):
""" check if user is the reviewer and also if the task status is UP.
"""
diff --git a/templates/task/report.html b/templates/task/report.html
new file mode 100644
index 0000000..d79c0c0
--- /dev/null
+++ b/templates/task/report.html
@@ -0,0 +1,7 @@
+{% extends 'base.html' %}
+{% block title %}
+ {{task.title}}
+{% endblock %}
+{% block content %}
+
+{% endblock %}
diff --git a/templates/task/view.html b/templates/task/view.html
index a671748..52346de 100644
--- a/templates/task/view.html
+++ b/templates/task/view.html
@@ -132,6 +132,7 @@
{% if is_reviewer %}
View claims
{% else %}
+ <a href="/task/report/tid={{task.id}}">Submit Work</a>
Claim the task
{% endif %}</a>
{% endif %}
diff --git a/urls.py b/urls.py
index e9f1651..ff92f14 100644
--- a/urls.py
+++ b/urls.py
@@ -124,5 +124,6 @@ urlpatterns = patterns('',
(r'^about/(\w+)/$', userViews.learn_more),
(r'^textbook/$', taskViews.show_textbooks),
+ (r'^task/report/tid=(\w+)/$', taskViews.upload_work),
)