summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpytask/taskapp/views/task.py47
-rw-r--r--pytask/templates/task/view.html7
2 files changed, 41 insertions, 13 deletions
diff --git a/pytask/taskapp/views/task.py b/pytask/taskapp/views/task.py
index 9381dfb..4b08543 100755
--- a/pytask/taskapp/views/task.py
+++ b/pytask/taskapp/views/task.py
@@ -273,22 +273,45 @@ def view_task(request, task_id, **kwargs):
else:
context['can_mod_reviewers'] = False
+ if (profile.role == profile_models.ROLES_CHOICES[3][0] and
+ profile.user in task.selected_users.all()):
+ context['can_report'] = True
+ else:
+ context['can_report'] = False
+
if request.method == 'POST':
- form = taskapp_forms.TaskCommentForm(request.POST, request.FILES)
- if form.is_valid():
- data = form.cleaned_data['data']
- new_comment = taskapp_forms.TaskComment(
- task=task, data=data, commented_by=user,
- comment_datetime=datetime.now(), file=request.FILES['file'])
- new_comment.save()
- return shortcuts.redirect(task_url)
- else:
- context['form'] = form
+ if not request.FILES:
+ comment_form = taskapp_forms.TaskCommentForm(request.POST)
+ if comment_form.is_valid():
+ data = comment_form.cleaned_data['data']
+ new_comment = taskapp_forms.TaskComment(
+ task=task, data=data, commented_by=user,
+ comment_datetime=datetime.now())
+ new_comment.save()
+ return shortcuts.redirect(task_url)
+
+ if context['can_report']:
+ work_report_form = taskapp_forms.WorkReportForm(request.POST,
+ request.FILES)
+ if work_report_form.is_valid():
+ data = work_report_form.cleaned_data['data']
+ summary = work_report_form.cleaned_data['summary']
+ new_work_report = taskapp_models.WorkReport(
+ task=task, data=data, submitted_by=user,
+ summary=summary, attachment=request.FILES['attachment'])
+ new_work_report.save()
+ return shortcuts.redirect(task_url)
+
+ if not comment_form.is_valid() or (
+ context['can_report'] and not work_report_form.is_valid()):
+ context['comment_form'] = comment_form
+ context['work_report_form'] = work_report_form
return shortcuts.render_to_response(
'task/view.html', RequestContext(request, context))
else:
- form = taskapp_forms.TaskCommentForm()
- context['form'] = form
+ context['comment_form'] = taskapp_forms.TaskCommentForm()
+ if context['can_report']:
+ context['work_report_form'] = taskapp_forms.WorkReportForm
return shortcuts.render_to_response(
'task/view.html', RequestContext(request, context))
diff --git a/pytask/templates/task/view.html b/pytask/templates/task/view.html
index 6aef7fd..d0cafcf 100644
--- a/pytask/templates/task/view.html
+++ b/pytask/templates/task/view.html
@@ -112,7 +112,12 @@ along with PyTask. If not, see <http://www.gnu.org/licenses/>.
{% if can_comment %}
Add comment:<br />
- {% as_div_form form "Comment Form" csrf_token "Submit" "" "True" %}
+ {% as_div_form comment_form "Comment Form" csrf_token "Submit" %}
+ {% endif %}
+
+ {% if can_report and work_report_form %}
+ Submit work:<br />
+ {% as_div_form work_report_form "Work Submission Form" csrf_token "Submit" "" "True" %}
{% endif %}
{% endblock %}