use python dates for request revisions, plus some cleanup
This commit is contained in:
@@ -2,9 +2,8 @@ from enum import Enum
|
||||
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
|
||||
import pendulum
|
||||
import dateutil
|
||||
|
||||
from atst.database import db
|
||||
from atst.domain.authz import Authorization
|
||||
@@ -20,11 +19,11 @@ from .exceptions import NotFoundError, UnauthorizedError
|
||||
|
||||
def create_revision_from_request_body(body):
|
||||
body = {k: v for p in body.values() for k, v in p.items()}
|
||||
TIMESTAMPS = ["start_date", "date_latest_training"]
|
||||
DATES = ["start_date", "date_latest_training"]
|
||||
coerced_timestamps = {
|
||||
k: pendulum.parse(v)
|
||||
k: dateutil.parser.parse(v)
|
||||
for k, v in body.items()
|
||||
if k in TIMESTAMPS and isinstance(v, str)
|
||||
if k in DATES and isinstance(v, str)
|
||||
}
|
||||
body = {**body, **coerced_timestamps}
|
||||
return RequestRevision(**body)
|
||||
|
@@ -8,6 +8,7 @@ from atst.models import Base
|
||||
from atst.models.types import Id
|
||||
from atst.models.request_status_event import RequestStatus
|
||||
from atst.utils import deep_merge, first_or_none
|
||||
from atst.models.request_revision import RequestRevision
|
||||
|
||||
|
||||
def map_properties_to_dict(properties, instance):
|
||||
|
@@ -1,7 +1,5 @@
|
||||
import pendulum
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
func,
|
||||
ForeignKey,
|
||||
String,
|
||||
Boolean,
|
||||
@@ -10,8 +8,6 @@ from sqlalchemy import (
|
||||
BigInteger,
|
||||
Sequence,
|
||||
)
|
||||
from sqlalchemy.types import DateTime
|
||||
from sqlalchemy.dialects.postgresql import JSONB
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from atst.models import Base
|
||||
|
Reference in New Issue
Block a user