Exemple #1
0
def upload(request):
    if request.method!='POST':
        return HttpResponseForbidden()

    try:
        if request.applicant.supplements.count() >= settings.MAX_SUPPLEMENTS:
            return upload_error(request, 'คุณได้อัพโหลดหลักฐานเป็นจำนวนมากเกินไป')
    except:
        pass

    form = SupplementForm(request.POST, request.FILES)

    if supplement_submission_deadline_passed():
        return HttpResponseRedirect(reverse('commons-deadline-error'))        

    if form.is_valid():
        f = request.FILES['uploaded_file']

        if f.size > settings.MAX_UPLOADED_DOC_FILE_SIZE:
            return upload_error(request, 'แฟ้มที่ส่งมามีขนาดใหญ่เกินไป')

        supplement = Supplement()
        supplement.applicant = request.applicant
        supplement.supplement_type = SUPPLEMENTS[int(form.cleaned_data['supplement_type'])]
        supplement.image = f
        supplement.save()

        submission_info = request.applicant.submission_info
        submission_info.update_last_updated_timestamp_to_now()

        return HttpResponseRedirect(reverse('supplement-index'))

    return upload_error(request, form.error_message())
Exemple #2
0
def update(request, missing_fields=None):
    if not request.applicant.can_resubmit_online_doc():
        return HttpResponseForbidden()

    if supplement_submission_deadline_passed():
        return HttpResponseRedirect(reverse('commons-deadline-error'))

    notice = extract_variable_from_session_or_none(request.session, 'notice')
    uploaded_field_error = extract_variable_from_session_or_none(
        request.session, 'error')

    applicant = request.applicant

    if request.method=='POST':
        applicant.resubmit()
        send_resubmission_confirmation_by_email(applicant)
        return HttpResponseRedirect(reverse('status-index'))

    docs = applicant.get_applicant_docs_or_none()
    review_results = ReviewFieldResult.get_applicant_review_results(applicant)

    error_fields, error_results, passed_fields = [], [], []
    for result in review_results:
        if result.is_passed:
            passed_fields.append(result.review_field.name)
        else:
            error_fields.append(result.review_field.short_name)
            error_results.append(result)

    field_forms = populate_upload_field_forms(docs, 
                                              error_fields)

    # add reviewer comments
    for field, result in zip(error_fields, error_results):
        field_forms[field]['comment'] = result.applicant_note

    form_step_info = { 'steps': UPDATE_FORM_STEPS,
                       'current_step': 0,
                       'max_linked_step': 0 }
    return render_to_response("upload/update.html",
                              { 'applicant': request.applicant,
                                'field_forms': field_forms,
                                'passed_fields': passed_fields,
                                'form_step_info': form_step_info,
                                'notice': notice,
                                'missing_fields': missing_fields,
                                'uploaded_field_error': uploaded_field_error })
 def can_submit_supplements(self):
     return (self.is_submitted and 
             (not self.submission_info.doc_reviewed_complete) and
             (not supplement_submission_deadline_passed()))
Exemple #4
0
 def decorate(request, *args, **kwargs):
     if supplement_submission_deadline_passed():
         return HttpResponseRedirect(reverse('commons-deadline-error'))
     else:
         return view_function(request, *args, **kwargs)