from flask import render_template, redirect, url_for from flask import request as http_request from . import requests_bp from atst.domain.requests import Requests from atst.forms.financial import FinancialForm, ExtendedFinancialForm def financial_form(data): if http_request.args.get("extended"): return ExtendedFinancialForm(data=data) else: return FinancialForm(data=data) @requests_bp.route("/requests/verify/", methods=["GET"]) def financial_verification(request_id=None): request = Requests.get(request_id) form = financial_form(request.body.get("financial_verification")) return render_template( "requests/financial_verification.html", f=form, request_id=request_id, extended=http_request.args.get("extended"), ) @requests_bp.route("/requests/verify/", methods=["POST"]) def update_financial_verification(request_id): post_data = http_request.form existing_request = Requests.get(request_id) form = financial_form(post_data) rerender_args = dict( request_id=request_id, f=form, extended=http_request.args.get("extended") ) if form.validate(): request_data = {"financial_verification": form.data} valid = form.perform_extra_validation( existing_request.body.get("financial_verification") ) updated_request = Requests.update(request_id, request_data) if valid: new_workspace = Requests.approve_and_create_workspace(updated_request) return redirect(url_for("workspaces.workspace_projects", workspace_id=new_workspace.id, newWorkspace=True)) else: form.reset() return render_template( "requests/financial_verification.html", **rerender_args ) else: form.reset() return render_template("requests/financial_verification.html", **rerender_args) @requests_bp.route("/requests/financial_verification_submitted") def financial_verification_submitted(): return render_template("requests/financial_verification_submitted.html")