コード例 #1
0
ファイル: views.py プロジェクト: panuta/thaihealthsms_report
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
コード例 #2
0
ファイル: views.py プロジェクト: panuta/thaihealthsms_report
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})
コード例 #3
0
ファイル: views.py プロジェクト: panuta/thaihealthsms_report
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
コード例 #4
0
ファイル: views.py プロジェクト: panuta/thaihealthsms_report
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