Merge remote-tracking branch 'origin/monolith' into vue

This commit is contained in:
Patrick Smith
2018-08-02 16:36:22 -04:00
41 changed files with 478 additions and 510 deletions

View File

@@ -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)

View File

@@ -1,5 +1,4 @@
from flask_assets import Environment, Bundle
from atst.home import home
environment = Environment()

View File

@@ -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()

View File

@@ -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

View File

@@ -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(

View File

@@ -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,

View File

@@ -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))

View File

@@ -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

View File

@@ -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

View File

@@ -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__)

View File

@@ -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):