diff options
author | Nishanth Amuluru | 2011-01-05 23:51:10 +0530 |
---|---|---|
committer | Nishanth Amuluru | 2011-01-05 23:51:10 +0530 |
commit | 94562031fcfbf0b8cb9d8dcdcb275c893fe68095 (patch) | |
tree | f3bc7a344dbb292eb79f4535f7103b336a17c86b | |
parent | dfc9b3caf56c119d10c002c321a8fcd1d7ff8406 (diff) | |
download | pytask-94562031fcfbf0b8cb9d8dcdcb275c893fe68095.tar.gz pytask-94562031fcfbf0b8cb9d8dcdcb275c893fe68095.tar.bz2 pytask-94562031fcfbf0b8cb9d8dcdcb275c893fe68095.zip |
added a submit_report link for each task
-rw-r--r-- | taskapp/forms/task.py | 7 | ||||
-rw-r--r-- | taskapp/models.py | 10 | ||||
-rw-r--r-- | taskapp/views/task.py | 30 | ||||
-rw-r--r-- | templates/task/report.html | 7 | ||||
-rw-r--r-- | templates/task/view.html | 1 | ||||
-rw-r--r-- | urls.py | 1 |
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 %} @@ -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), ) |