Fix task order creation
This commit is contained in:
@@ -5,17 +5,12 @@ from atst.models.request_revision import RequestRevision
|
||||
from atst.models.request_status_event import RequestStatusEvent, RequestStatus
|
||||
from atst.models.request_review import RequestReview
|
||||
from atst.models.request_internal_comment import RequestInternalComment
|
||||
from atst.utils import deep_merge
|
||||
from atst.utils import deep_merge, pick
|
||||
|
||||
from .query import RequestsQuery
|
||||
from .authorization import RequestsAuthorization
|
||||
|
||||
|
||||
def pick(keys, d):
|
||||
_keys = set(keys)
|
||||
return {k: v for (k, v) in d.items() if k in _keys}
|
||||
|
||||
|
||||
def create_revision_from_request_body(body):
|
||||
body = {k: v for p in body.values() for k, v in p.items()}
|
||||
DATES = ["start_date", "date_latest_training"]
|
||||
@@ -79,7 +74,10 @@ class Requests(object):
|
||||
@classmethod
|
||||
def update(cls, request_id, request_delta):
|
||||
request = RequestsQuery.get_with_lock(request_id)
|
||||
return Requests._update(request, request_delta)
|
||||
|
||||
@classmethod
|
||||
def _update(cls, request, request_delta):
|
||||
new_body = deep_merge(request_delta, request.body)
|
||||
revision = create_revision_from_request_body(new_body)
|
||||
request.revisions.append(revision)
|
||||
@@ -183,7 +181,7 @@ class Requests(object):
|
||||
if task_order:
|
||||
request.task_order = task_order
|
||||
|
||||
request = Requests.update(request.id, {"financial_verification": delta})
|
||||
request = Requests._update(request, {"financial_verification": delta})
|
||||
|
||||
return request
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ from atst.database import db
|
||||
from atst.models.task_order import TaskOrder, Source, FundingType
|
||||
from atst.models.attachment import Attachment
|
||||
from .exceptions import NotFoundError
|
||||
from atst.utils import drop, update_obj
|
||||
|
||||
|
||||
class TaskOrders(object):
|
||||
@@ -38,7 +39,8 @@ class TaskOrders(object):
|
||||
|
||||
@classmethod
|
||||
def create(cls, **kwargs):
|
||||
task_order = TaskOrder(**kwargs)
|
||||
to_data = drop(["source"], kwargs)
|
||||
task_order = TaskOrder(source=Source.MANUAL, **to_data)
|
||||
|
||||
db.session.add(task_order)
|
||||
db.session.commit()
|
||||
@@ -75,3 +77,10 @@ class TaskOrders(object):
|
||||
return TaskOrders.create(
|
||||
**data, number=number, pdf=attachment, source=Source.MANUAL
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def update(cls, task_order, dct):
|
||||
updated = update_obj(task_order, dct)
|
||||
db.session.add(updated)
|
||||
db.session.commit()
|
||||
return updated
|
||||
|
||||
Reference in New Issue
Block a user