Admin cleanup

This commit is contained in:
2026-06-20 07:38:09 -04:00
parent 733e9b426f
commit a9b5ec67ba
4 changed files with 296 additions and 118 deletions
+32 -21
View File
@@ -59,28 +59,36 @@ async def get_public_arrivals(db: Session = Depends(get_db)):
'isLocalFlight': False
})
# Add local flights with DEPARTED status that were booked out today
local_flights = crud_local_flight.get_multi(
db,
status=LocalFlightStatus.DEPARTED,
limit=1000
)
# Get today's date boundaries
today = date.today()
today_start = datetime.combine(today, datetime.min.time())
today_end = datetime.combine(today + timedelta(days=1), datetime.min.time())
# Add airborne local flights that were booked out today.
# Admin now moves local flights from GROUND to LOCAL/CIRCUIT rather than DEPARTED.
airborne_local_statuses = {
LocalFlightStatus.DEPARTED,
LocalFlightStatus.LOCAL,
LocalFlightStatus.CIRCUIT,
LocalFlightStatus.CIRCUIT_DOWNWIND,
LocalFlightStatus.CIRCUIT_BASE,
LocalFlightStatus.CIRCUIT_FINAL,
}
local_flights = crud_local_flight.get_multi(db, limit=1000)
# Convert local flights to match the PPR format for display
for flight in local_flights:
# Only include flights booked out today
if not (today_start <= flight.created_dt < today_end):
continue
if flight.status not in airborne_local_statuses:
continue
# Calculate ETA from departed_dt + duration (if both are available)
eta = flight.departed_dt
if flight.departed_dt and flight.duration:
eta = flight.departed_dt + timedelta(minutes=flight.duration)
# Calculate ETA from actual takeoff/departure + duration, falling back to ETD.
departure_time = flight.takeoff_dt or flight.departed_dt or flight.etd
eta = departure_time
if departure_time and flight.duration:
eta = departure_time + timedelta(minutes=flight.duration)
arrivals_list.append({
'ac_call': flight.callsign or flight.registration,
@@ -89,7 +97,7 @@ async def get_public_arrivals(db: Session = Depends(get_db)):
'in_from': None,
'eta': eta,
'landed_dt': None,
'status': 'DEPARTED',
'status': flight.status.value,
'isLocalFlight': True,
'flight_type': flight.flight_type.value
})
@@ -143,23 +151,26 @@ async def get_public_departures(db: Session = Depends(get_db)):
'isDeparture': False
})
# Add local flights with BOOKED_OUT status that were booked out today
local_flights = crud_local_flight.get_multi(
db,
status=LocalFlightStatus.BOOKED_OUT,
limit=1000
)
# Get today's date boundaries
today = date.today()
today_start = datetime.combine(today, datetime.min.time())
today_end = datetime.combine(today + timedelta(days=1), datetime.min.time())
# Add local flights awaiting takeoff that were booked out today.
# Admin-created flights start at GROUND, while public pilot submissions start at BOOKED_OUT.
local_departure_statuses = {
LocalFlightStatus.BOOKED_OUT,
LocalFlightStatus.GROUND,
}
local_flights = crud_local_flight.get_multi(db, limit=1000)
# Convert local flights to match the PPR format for display
for flight in local_flights:
# Only include flights booked out today
if not (today_start <= flight.created_dt < today_end):
continue
if flight.status not in local_departure_statuses:
continue
departures_list.append({
'ac_call': flight.callsign or flight.registration,
'ac_reg': flight.registration,
@@ -167,7 +178,7 @@ async def get_public_departures(db: Session = Depends(get_db)):
'out_to': None,
'etd': flight.etd or flight.created_dt,
'departed_dt': None,
'status': 'BOOKED_OUT',
'status': 'CONTACT' if flight.status == LocalFlightStatus.GROUND else 'BOOKED_OUT',
'isLocalFlight': True,
'flight_type': flight.flight_type.value,
'isDeparture': False
@@ -247,4 +258,4 @@ async def get_ui_config():
"top_bar_gradient_end": lighten_color(base_color, 0.4), # Lighten for gradient end
"footer_color": darken_color(base_color, 0.2), # Darken for footer
"environment": settings.environment
}
}