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())
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()))
def decorate(request, *args, **kwargs): if supplement_submission_deadline_passed(): return HttpResponseRedirect(reverse('commons-deadline-error')) else: return view_function(request, *args, **kwargs)