working PDF uploads for task orders

This commit is contained in:
dandds 2018-08-24 14:40:41 -04:00 committed by Montana
parent 54d1e7235b
commit 900bb7b7ad
3 changed files with 12 additions and 3 deletions

View File

@ -3,6 +3,7 @@ from sqlalchemy import exists, and_, exc
from sqlalchemy.sql import text from sqlalchemy.sql import text
from sqlalchemy.orm.exc import NoResultFound from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm.attributes import flag_modified from sqlalchemy.orm.attributes import flag_modified
from werkzeug.datastructures import FileStorage
from atst.models.request import Request from atst.models.request import Request
from atst.models.request_status_event import RequestStatusEvent, RequestStatus 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() for (k, v) in financial_data.items()
if k in TaskOrders.TASK_ORDER_DATA if k in TaskOrders.TASK_ORDER_DATA
} }
if task_order_data: if task_order_data:
task_order_number = request_data.pop("task_order_number") task_order_number = request_data.pop("task_order_number")
else: else:
task_order_number = request_data.get("task_order_number") 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 = TaskOrders.get_or_create_task_order(
task_order_number, task_order_data task_order_number, task_order_data
) )

View File

@ -3,6 +3,7 @@ from flask import current_app as app
from atst.database import db from atst.database import db
from atst.models.task_order import TaskOrder, Source from atst.models.task_order import TaskOrder, Source
from atst.models.attachment import Attachment
from .exceptions import NotFoundError from .exceptions import NotFoundError
@ -53,6 +54,9 @@ class TaskOrders(object):
except NotFoundError: except NotFoundError:
if task_order_data: if task_order_data:
pdf_file = task_order_data.pop("pdf")
# should catch the error here
attachment = Attachment.attach(pdf_file)
return TaskOrders.create( return TaskOrders.create(
**task_order_data, number=number, source=Source.MANUAL **task_order_data, number=number, source=Source.MANUAL, pdf=attachment
) )

View File

@ -38,7 +38,7 @@
{% block form_action %} {% block form_action %}
{% if extended %} {% if extended %}
<form method='POST' action="{{ url_for('requests.financial_verification', request_id=request_id, extended=True) }}" autocomplete="off"> <form method='POST' action="{{ url_for('requests.financial_verification', request_id=request_id, extended=True) }}" autocomplete="off" enctype="multipart/form-data">
{% else %} {% else %}
<form method='POST' action="{{ url_for('requests.financial_verification', request_id=request_id) }}" autocomplete="off"> <form method='POST' action="{{ url_for('requests.financial_verification', request_id=request_id) }}" autocomplete="off">
{% endif %} {% endif %}
@ -96,7 +96,7 @@
) }} ) }}
{{ f.task_order.label }} {{ f.task_order.label }}
{{ f.task_order(multiple="") }} {{ f.task_order }}
</fieldset> </fieldset>
{% endif %} {% endif %}