Merge remote-tracking branch 'origin/monolith' into vue
This commit is contained in:
@@ -12,7 +12,7 @@ from atst.routes.workspaces import bp as workspace_routes
|
||||
from atst.routes.requests import requests_bp
|
||||
|
||||
|
||||
ENV = os.getenv("TORNADO_ENV", "dev")
|
||||
ENV = os.getenv("FLASK_ENV", "dev")
|
||||
|
||||
|
||||
def make_app(config):
|
||||
@@ -40,7 +40,7 @@ def make_app(config):
|
||||
|
||||
def make_flask_callbacks(app):
|
||||
@app.before_request
|
||||
def set_globals():
|
||||
def _set_globals():
|
||||
g.navigationContext = (
|
||||
"workspace"
|
||||
if re.match("\/workspaces\/[A-Za-z0-9]*", request.url)
|
||||
@@ -84,6 +84,10 @@ def make_config():
|
||||
config = ConfigParser()
|
||||
config.optionxform = str
|
||||
|
||||
config_files = [BASE_CONFIG_FILENAME, ENV_CONFIG_FILENAME]
|
||||
if OVERRIDE_CONFIG_FILENAME:
|
||||
config_files.append(OVERRIDE_CONFIG_FILENAME)
|
||||
|
||||
config_files = [BASE_CONFIG_FILENAME, ENV_CONFIG_FILENAME]
|
||||
if OVERRIDE_CONFIG_FILENAME:
|
||||
config_files.append(OVERRIDE_CONFIG_FILENAME)
|
||||
|
@@ -1,5 +1,4 @@
|
||||
from flask_assets import Environment, Bundle
|
||||
from atst.home import home
|
||||
|
||||
environment = Environment()
|
||||
|
||||
|
@@ -1,24 +1,25 @@
|
||||
from sqlalchemy.dialects.postgresql import insert
|
||||
|
||||
from atst.database import db
|
||||
from atst.models.pe_number import PENumber
|
||||
from .exceptions import NotFoundError
|
||||
|
||||
|
||||
class PENumbers(object):
|
||||
def __init__(self, db_session):
|
||||
self.db_session = db_session
|
||||
|
||||
def get(self, number):
|
||||
pe_number = self.db_session.query(PENumber).get(number)
|
||||
@classmethod
|
||||
def get(cls, number):
|
||||
pe_number = db.session.query(PENumber).get(number)
|
||||
if not pe_number:
|
||||
raise NotFoundError("pe_number")
|
||||
|
||||
return pe_number
|
||||
|
||||
def create_many(self, list_of_pe_numbers):
|
||||
@classmethod
|
||||
def create_many(cls, list_of_pe_numbers):
|
||||
stmt = insert(PENumber).values(list_of_pe_numbers)
|
||||
do_update = stmt.on_conflict_do_update(
|
||||
index_elements=["number"], set_=dict(description=stmt.excluded.description)
|
||||
)
|
||||
self.db_session.execute(do_update)
|
||||
self.db_session.commit()
|
||||
db.session.execute(do_update)
|
||||
db.session.commit()
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import tornado.gen
|
||||
from sqlalchemy import exists, and_
|
||||
from sqlalchemy.orm.exc import NoResultFound
|
||||
from sqlalchemy.orm.attributes import flag_modified
|
||||
|
@@ -1,12 +1,11 @@
|
||||
import re
|
||||
import tornado
|
||||
from tornado.gen import Return
|
||||
from wtforms.fields.html5 import EmailField
|
||||
from wtforms.fields import StringField, SelectField
|
||||
from wtforms.form import Form
|
||||
from wtforms.validators import Required, Email
|
||||
|
||||
from atst.domain.exceptions import NotFoundError
|
||||
from atst.domain.pe_numbers import PENumbers
|
||||
|
||||
from .fields import NewlineListField
|
||||
from .forms import ValidatedForm
|
||||
@@ -40,9 +39,9 @@ def suggest_pe_id(pe_id):
|
||||
return None
|
||||
|
||||
|
||||
def validate_pe_id(field, existing_request, pe_numbers_repo):
|
||||
def validate_pe_id(field, existing_request):
|
||||
try:
|
||||
pe_number = pe_numbers_repo.get(field.data)
|
||||
pe_number = PENumbers.get(field.data)
|
||||
except NotFoundError:
|
||||
suggestion = suggest_pe_id(field.data)
|
||||
error_str = (
|
||||
@@ -50,17 +49,17 @@ def validate_pe_id(field, existing_request, pe_numbers_repo):
|
||||
"If you have double checked it you can submit anyway. "
|
||||
"Your request will need to go through a manual review."
|
||||
).format('Did you mean "{}"? '.format(suggestion) if suggestion else "")
|
||||
field.errors.append(error_str)
|
||||
field.errors += (error_str,)
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
class FinancialForm(ValidatedForm):
|
||||
def perform_extra_validation(self, existing_request, pe_numbers_repo):
|
||||
def perform_extra_validation(self, existing_request):
|
||||
valid = True
|
||||
if not existing_request or existing_request.get("pe_id") != self.pe_id.data:
|
||||
valid = yield validate_pe_id(self.pe_id, existing_request, pe_numbers_repo)
|
||||
valid = validate_pe_id(self.pe_id, existing_request)
|
||||
return valid
|
||||
|
||||
task_order_id = StringField(
|
||||
|
@@ -47,6 +47,7 @@ class RequestFinancialVerification(BaseHandler):
|
||||
|
||||
if form.validate():
|
||||
yield self.update_request(request_id, form.data)
|
||||
# pylint: disable=E1121
|
||||
valid = yield form.perform_extra_validation(
|
||||
existing_request.body.get("financial_verification"),
|
||||
self.pe_numbers_repo,
|
||||
|
@@ -7,6 +7,11 @@ bp = Blueprint("atst", __name__)
|
||||
|
||||
|
||||
@bp.route("/")
|
||||
def root():
|
||||
return render_template("root.html")
|
||||
|
||||
|
||||
@bp.route("/home")
|
||||
def home():
|
||||
return render_template("home.html")
|
||||
|
||||
@@ -14,3 +19,8 @@ def home():
|
||||
@bp.route("/styleguide")
|
||||
def styleguide():
|
||||
return render_template("styleguide.html")
|
||||
|
||||
|
||||
@bp.route('/<path:path>')
|
||||
def catch_all(path):
|
||||
return render_template("{}.html".format(path))
|
||||
|
@@ -1,4 +1,5 @@
|
||||
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
|
||||
@@ -29,7 +30,7 @@ def update_financial_verification(request_id):
|
||||
existing_request.body.get("financial_verification")
|
||||
)
|
||||
if valid:
|
||||
redirect(url_for("requests.financial_verification_submitted"))
|
||||
return redirect(url_for("requests.financial_verification_submitted"))
|
||||
else:
|
||||
return render_template(
|
||||
"requests/financial_verification.html", **rerender_args
|
||||
|
@@ -1,7 +1,6 @@
|
||||
from collections import defaultdict
|
||||
|
||||
from atst.domain.requests import Requests
|
||||
from atst.forms.financial import FinancialForm
|
||||
from atst.forms.request import RequestForm
|
||||
from atst.forms.org import OrgForm
|
||||
from atst.forms.poc import POCForm
|
||||
|
@@ -1,7 +1,7 @@
|
||||
from flask import Blueprint, render_template
|
||||
|
||||
from atst.domain.workspaces import Projects, Members
|
||||
from atst.database import db
|
||||
|
||||
|
||||
bp = Blueprint("workspaces", __name__)
|
||||
|
||||
|
@@ -11,7 +11,7 @@ def navigationContext(self):
|
||||
|
||||
|
||||
def dev(self):
|
||||
return os.getenv("TORNADO_ENV", "dev") == "dev"
|
||||
return os.getenv("FLASK_ENV", "dev") == "dev"
|
||||
|
||||
|
||||
def matchesPath(self, href):
|
||||
|
Reference in New Issue
Block a user