def submit_project_report_text(request, project_ref_no, report_id, schedule_date): if request.method == 'POST': project = get_object_or_404(Project, ref_no=project_ref_no) report = get_object_or_404(Report, pk=report_id) schedule_date = convert_dateid_to_date(schedule_date) if not request.user.get_profile().is_manage_project(project): raise Http403 if not report.is_valid_schedule(schedule_date): raise Http404 form = SubmitReportTextForm(request.POST) if form.is_valid(): text = form.cleaned_data['report_text'] try: submission = ReportSubmission.objects.get(project=project, report=report, schedule_date=schedule_date) submission.report_text = text submission.save() except ReportSubmission.DoesNotExist: submission = ReportSubmission.objects.create(project=project, report=report, schedule_date=schedule_date, report_text=text, created_by=request.user) messages.success(request, u'แก้ไขเนื้อหารายงานเรียบร้อย') else: messages.error(request, u'เนื้อหารายงานไม่อยู่ในรูปแบบที่ถูกต้อง') return redirect('view_report', project_ref_no=project_ref_no, report_id=report_id, schedule_date=format_dateid(schedule_date)) else: raise Http404
def view_report(request, project_ref_no, report_id, schedule_date): project = get_object_or_404(Project, ref_no=project_ref_no) report = get_object_or_404(Report, pk=report_id) schedule_date = convert_dateid_to_date(schedule_date) if not report.is_valid_schedule(schedule_date): print 'invalid schedule' raise Http404 try: submission = ReportSubmission.objects.get(project=project, report=report, schedule_date=schedule_date) if not submission.submitted_on and not request.user.get_profile().is_manage_project(project, role='pm'): submission.attachments = [] else: submission.attachments = ReportSubmissionAttachment.objects.filter(submission=submission).order_by('-uploaded') except: submission = ReportSubmission(project=project, report=report, schedule_date=schedule_date) submission.attachments = [] if not project.is_active() and not submission.submitted_on and not request.user.get_profile().is_manage_project(project, role='pm'): raise Http404 if not submission.submitted_on and not request.user.get_profile().is_manage_project(project): raise Http404 if not submission.submitted_on and not request.user.get_profile().is_manage_project(project, role='pm'): submission.report_text = '' # not allow other people to see unfinished report return render(request, 'report/report_overview.html', {'project':project, 'report':report, 'submission':submission})
def submit_project_report_attachment(request, project_ref_no, report_id, schedule_date): if request.method == 'POST': project = get_object_or_404(Project, ref_no=project_ref_no) report = get_object_or_404(Report, pk=report_id) schedule_date = convert_dateid_to_date(schedule_date) if not request.user.get_profile().is_manage_project(project): raise Http403 if not report.is_valid_schedule(schedule_date): raise Http404 try: submission = ReportSubmission.objects.get(project=project, report=report, schedule_date=schedule_date) except ReportSubmission.DoesNotExist: submission = ReportSubmission(project=project, report=report, schedule_date=schedule_date) form = SubmitReportAttachmentForm(request.POST, request.FILES) if form.is_valid(): file_attachment = form.cleaned_data['report_attachment'] if not submission.id: submission.created_by = request.user submission.save() (file_name, file_ext) = split_filename(file_attachment.name) attachment = ReportSubmissionAttachment.objects.create(submission=submission, file_name=file_name, file_ext=file_ext, attachment=file_attachment, uploaded_by=request.user) messages.success(request, u'เพิ่มไฟล์แนบเรียบร้อย') else: return render(request, 'report/report_overview.html', {'project':project, 'report':report, 'submission':submission, 'attachment_form':form}) return redirect('view_report', project_ref_no=project_ref_no, report_id=report_id, schedule_date=format_dateid(schedule_date)) else: raise Http404
def submit_project_report(request, project_ref_no, report_id, schedule_date): if request.method == 'POST': project = get_object_or_404(Project, ref_no=project_ref_no) report = get_object_or_404(Report, pk=report_id) schedule_date = convert_dateid_to_date(schedule_date) if not request.user.get_profile().is_manage_project(project): raise Http403 if not report.is_valid_schedule(schedule_date): raise Http404 try: submission = ReportSubmission.objects.get(project=project, report=report, schedule_date=schedule_date) submission.submitted_on = datetime.datetime.now() submission.save() messages.success(request, u'ส่งรายงานเรียบร้อย') except ReportSubmission.DoesNotExist: messages.error(request, u'รายงานยังไม่มีเนื้อหา ไม่สามารถส่งได้') return redirect('view_report', project_ref_no=project_ref_no, report_id=report_id, schedule_date=format_dateid(schedule_date)) else: raise Http404