Uprava razeni fotek, drobnosti

This commit is contained in:
Michal Kváček
2023-12-10 22:11:44 +01:00
parent 89f5b8bb0c
commit f535d2866c
5 changed files with 26 additions and 21 deletions
@@ -32,10 +32,14 @@ class PhotoQueryResolver(BaseQueryResolver):
only_public: Optional[bool] = False,
*args, **kwargs
):
query = super().get_query(
user_id, object_id, order_by,
aircraft_id=kwargs.get("aircraft_id"),
point_of_interest_id=kwargs.get("point_of_interest_id")
**{
field: kwargs[field]
for field in ("aircraft_id", "point_of_interest_id", "flight_id")
if kwargs.get(field)
}
)
if kwargs.get("public"):
@@ -46,7 +50,7 @@ class PhotoQueryResolver(BaseQueryResolver):
if kwargs.get("copilot_id"):
query = (
query.join(models.copilot_has_photo, )
query.join(models.copilot_has_photo)
.filter(models.copilot_has_photo.c.copilot_id == kwargs['copilot_id'])
)
@@ -131,10 +135,6 @@ class PhotoMutationResolver(BaseMutationResolver):
extra_data={"description": ""}
)
if input.is_aircraft:
flight = (await db.scalars(select(models.Flight).filter(models.Flight.id == photo.flight_id))).one()
data['aircraft_id'] = flight.aircraft_id
if input.copilots is not None:
await db.execute(delete(models.copilot_has_photo).filter_by(photo_id=id))
for copilot in input.copilots:
@@ -19,7 +19,7 @@ class CreateCopilotInput(BaseGraphqlInputType):
pass
@strawberry_sqlalchemy_input(model=models.Copilot, exclude_fields=["id"])
@strawberry_sqlalchemy_input(model=models.Copilot, exclude_fields=["id"], all_optional=True)
class EditCopilotInput(BaseGraphqlInputType):
pass
@@ -68,12 +68,12 @@ class EditPhotoInput:
name: Optional[str] = None
description: Optional[str] = None
point_of_interest: Optional[ComboboxInput] = None
is_aircraft: Optional[bool] = None
copilots: Optional[List[ComboboxInput]] = None
aircraft_id: Optional[int] = None
def to_dict(self):
return {
key: getattr(self, key) for key in ('name', 'description')
key: getattr(self, key) for key in ('name', 'description', 'aircraft_id')
if getattr(self, key) is not None
}
@@ -87,7 +87,6 @@ class Photo:
resolver=lambda root: poi_dataloader.load(root.point_of_interest_id)
)
copilots: List[Copilot] = strawberry.field(resolver=lambda root: copilots_in_photo_dataloader.load(root.id))
is_aircraft: bool = strawberry.field(resolver=lambda root: bool(root.aircraft_id))
flight: Flight = strawberry.field(resolver=lambda root: flight_dataloader.load(root.flight_id))
adjustment: Optional[PhotoAdjustment] = strawberry.field(
resolver=lambda root: photo_adjustment_dataloader.load(root.id)
@@ -163,9 +162,6 @@ class Copilot:
@strawberry_sqlalchemy_type(models.Aircraft)
class Aircraft:
# photo_url: Optional[str] = strawberry.field(
# resolver=lambda root: get_public_url(f"aircrafts/{root.photo_filename}") if root.photo_filename else None
# )
flights: List[Flight] = strawberry.field(resolver=lambda root: flights_by_aircraft_dataloader.load(root.id))
organization: Optional[Organization] = strawberry.field(
resolver=lambda root: organizations_dataloader.load(root.organization_id)