ZoNacitani frekvenci, RWY

This commit is contained in:
Michal Kváček
2024-05-15 09:33:41 +02:00
parent 62e46f37ce
commit 94613a5b1b
3 changed files with 37 additions and 2 deletions
+2
View File
@@ -145,6 +145,8 @@ class Airport(BaseModel):
created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
created_by_id: Mapped[int] = mapped_column(Integer, ForeignKey('user.id'), nullable=True) # automaticky import nebude mit ID # noqa
runways: Mapped[list['Runway']] = relationship()
frequencies: Mapped[list['Frequency']] = relationship()
created_by: Mapped['User'] = relationship()
@@ -47,6 +47,24 @@ reporting_points_dataloader = DataLoader(
).load, cache=False
)
runways_dataloader = DataLoader(
load_fn=MultiModelsDataloader(
models.Runway,
relationship_column=models.Airport.id,
extra_join=[models.Airport.runways],
order_by=[models.Runway.designator]
).load, cache=False
)
frequencies_dataloader = DataLoader(
load_fn=MultiModelsDataloader(
models.Frequency,
relationship_column=models.Airport.id,
extra_join=[models.Airport.frequencies],
order_by=[models.Frequency.frequency]
).load, cache=False
)
flights_by_copilot_dataloader = DataLoader(
load_fn=MultiModelsDataloader(
models.Flight,
+17 -2
View File
@@ -15,7 +15,7 @@ from graphql_schema.dataloaders.multi_models import (
aircrafts_from_organization_dataloader, user_organizations_dataloader, flights_by_event_dataloader,
flights_by_copilot_dataloader, public_flights_by_event_dataloader, public_flights_by_copilot_dataloader,
photo_copilots_dataloader, photos_aircraft_dataloader, copilots_in_photo_dataloader, flight_plan_markers_dataloader,
reporting_points_dataloader, flight_plan_copilots_dataloader
reporting_points_dataloader, flight_plan_copilots_dataloader, runways_dataloader, frequencies_dataloader
)
from graphql_schema.dataloaders.single_model import (
poi_dataloader, poi_type_dataloader, event_dataloader, aircraft_dataloader, airport_dataloader,
@@ -52,14 +52,29 @@ class ReportingPoint:
pass
@strawberry_sqlalchemy_type(models.Runway)
class Runway:
pass
@strawberry_sqlalchemy_type(models.Frequency)
class Frequency:
pass
@strawberry_sqlalchemy_type(models.Airport)
class Airport:
reporting_points: List[ReportingPoint] = strawberry.field(
resolver=lambda root: reporting_points_dataloader.load(root.id)
)
runways: List[Runway] = strawberry.field(
resolver=lambda root: runways_dataloader.load(root.id)
)
frequencies: List[Frequency] = strawberry.field(
resolver=lambda root: frequencies_dataloader.load(root.id)
)
# TODO: loader na ikonu
# TODO: loader na RWY a frekvence
@strawberry.type