Many more states WIP
This commit is contained in:
@@ -24,7 +24,17 @@ class CRUDArrival:
|
||||
query = db.query(Arrival)
|
||||
|
||||
if status:
|
||||
query = query.filter(Arrival.status == status)
|
||||
if status == ArrivalStatus.CIRCUIT:
|
||||
# Special case: when requesting CIRCUIT status, return all circuit-related statuses
|
||||
circuit_statuses = [
|
||||
ArrivalStatus.CIRCUIT,
|
||||
ArrivalStatus.CIRCUIT_DOWNWIND,
|
||||
ArrivalStatus.CIRCUIT_BASE,
|
||||
ArrivalStatus.CIRCUIT_FINAL
|
||||
]
|
||||
query = query.filter(Arrival.status.in_(circuit_statuses))
|
||||
else:
|
||||
query = query.filter(Arrival.status == status)
|
||||
|
||||
if date_from:
|
||||
query = query.filter(func.date(Arrival.created_dt) >= date_from)
|
||||
@@ -35,23 +45,33 @@ class CRUDArrival:
|
||||
return query.order_by(desc(Arrival.created_dt)).offset(skip).limit(limit).all()
|
||||
|
||||
def get_arrivals_today(self, db: Session) -> List[Arrival]:
|
||||
"""Get today's arrivals (booked in or landed)"""
|
||||
"""Get today's arrivals (booked in, inbound or landed)"""
|
||||
today = date.today()
|
||||
return db.query(Arrival).filter(
|
||||
and_(
|
||||
func.date(Arrival.created_dt) == today,
|
||||
or_(
|
||||
Arrival.status == ArrivalStatus.BOOKED_IN,
|
||||
Arrival.status == ArrivalStatus.INBOUND,
|
||||
Arrival.status == ArrivalStatus.LANDED
|
||||
)
|
||||
)
|
||||
).order_by(Arrival.created_dt).all()
|
||||
|
||||
def create(self, db: Session, obj_in: ArrivalCreate, created_by: str) -> Arrival:
|
||||
def create(self, db: Session, obj_in: ArrivalCreate, created_by: str, submitted_via: str = "ADMIN") -> Arrival:
|
||||
from app.models.arrival import SubmissionSource
|
||||
|
||||
# Set initial status based on submission source
|
||||
initial_status = ArrivalStatus.BOOKED_IN
|
||||
|
||||
if submitted_via == SubmissionSource.ADMIN:
|
||||
initial_status = ArrivalStatus.INBOUND
|
||||
|
||||
db_obj = Arrival(
|
||||
**obj_in.dict(),
|
||||
**obj_in.dict(exclude={'submitted_via'}),
|
||||
created_by=created_by,
|
||||
status=ArrivalStatus.BOOKED_IN
|
||||
status=initial_status,
|
||||
submitted_via=submitted_via
|
||||
)
|
||||
db.add(db_obj)
|
||||
db.commit()
|
||||
|
||||
@@ -26,7 +26,17 @@ class CRUDLocalFlight:
|
||||
query = db.query(LocalFlight)
|
||||
|
||||
if status:
|
||||
query = query.filter(LocalFlight.status == status)
|
||||
if status == LocalFlightStatus.CIRCUIT:
|
||||
# Special case: when requesting CIRCUIT status, return all circuit-related statuses
|
||||
circuit_statuses = [
|
||||
LocalFlightStatus.CIRCUIT,
|
||||
LocalFlightStatus.CIRCUIT_DOWNWIND,
|
||||
LocalFlightStatus.CIRCUIT_BASE,
|
||||
LocalFlightStatus.CIRCUIT_FINAL
|
||||
]
|
||||
query = query.filter(LocalFlight.status.in_(circuit_statuses))
|
||||
else:
|
||||
query = query.filter(LocalFlight.status == status)
|
||||
|
||||
if flight_type:
|
||||
query = query.filter(LocalFlight.flight_type == flight_type)
|
||||
@@ -74,11 +84,20 @@ class CRUDLocalFlight:
|
||||
)
|
||||
).order_by(LocalFlight.created_dt).all()
|
||||
|
||||
def create(self, db: Session, obj_in: LocalFlightCreate, created_by: str) -> LocalFlight:
|
||||
def create(self, db: Session, obj_in: LocalFlightCreate, created_by: str, submitted_via: str = "ADMIN") -> LocalFlight:
|
||||
from app.models.local_flight import SubmissionSource
|
||||
|
||||
# Set initial status based on submission source
|
||||
initial_status = LocalFlightStatus.BOOKED_OUT
|
||||
|
||||
if submitted_via == SubmissionSource.ADMIN:
|
||||
initial_status = LocalFlightStatus.GROUND
|
||||
|
||||
db_obj = LocalFlight(
|
||||
**obj_in.dict(),
|
||||
created_by=created_by,
|
||||
status=LocalFlightStatus.BOOKED_OUT
|
||||
status=initial_status,
|
||||
submitted_via=submitted_via
|
||||
)
|
||||
db.add(db_obj)
|
||||
db.commit()
|
||||
|
||||
Reference in New Issue
Block a user