diff --git a/atst/domain/requests.py b/atst/domain/requests.py index 4b18595f..b13e43ff 100644 --- a/atst/domain/requests.py +++ b/atst/domain/requests.py @@ -3,6 +3,7 @@ from sqlalchemy import exists, and_, exc from sqlalchemy.sql import text from sqlalchemy.orm.exc import NoResultFound from sqlalchemy.orm.attributes import flag_modified +from werkzeug.datastructures import FileStorage from atst.models.request import Request from atst.models.request_status_event import RequestStatusEvent, RequestStatus @@ -244,11 +245,15 @@ WHERE requests_with_status.status = :status for (k, v) in financial_data.items() if k in TaskOrders.TASK_ORDER_DATA } + if task_order_data: task_order_number = request_data.pop("task_order_number") else: task_order_number = request_data.get("task_order_number") + if "task_order" in request_data and isinstance(request_data["task_order"], FileStorage): + task_order_data["pdf"] = request_data.pop("task_order") + task_order = TaskOrders.get_or_create_task_order( task_order_number, task_order_data ) diff --git a/atst/domain/task_orders.py b/atst/domain/task_orders.py index d03910d4..77fafae0 100644 --- a/atst/domain/task_orders.py +++ b/atst/domain/task_orders.py @@ -3,6 +3,7 @@ from flask import current_app as app from atst.database import db from atst.models.task_order import TaskOrder, Source +from atst.models.attachment import Attachment from .exceptions import NotFoundError @@ -53,6 +54,9 @@ class TaskOrders(object): except NotFoundError: if task_order_data: + pdf_file = task_order_data.pop("pdf") + # should catch the error here + attachment = Attachment.attach(pdf_file) return TaskOrders.create( - **task_order_data, number=number, source=Source.MANUAL + **task_order_data, number=number, source=Source.MANUAL, pdf=attachment ) diff --git a/templates/requests/financial_verification.html b/templates/requests/financial_verification.html index c3136541..0808eaa0 100644 --- a/templates/requests/financial_verification.html +++ b/templates/requests/financial_verification.html @@ -38,7 +38,7 @@ {% block form_action %} {% if extended %} -
+ {% else %} {% endif %} @@ -96,7 +96,7 @@ ) }} {{ f.task_order.label }} - {{ f.task_order(multiple="") }} + {{ f.task_order }} {% endif %}