Skip to content

Commit c1f0ef6

Browse files
authored
Migrate event type to Strawberry Django (#4755)
1 parent 68616b3 commit c1f0ef6

2 files changed

Lines changed: 30 additions & 17 deletions

File tree

backend/api/conferences/types.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,8 @@ def submissions(self, info: Info) -> list[Submission] | None:
239239
)
240240
).select_related("audience_level", "duration", "type", "topic")
241241

242-
@strawberry.field
243-
def events(self, info: Info) -> list[Event]:
242+
@strawberry_django.field
243+
def events(self) -> list[Event]:
244244
return self.events.all()
245245

246246
@strawberry.field

backend/api/events/types.py

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,39 @@
11
from datetime import datetime
2-
from typing import Optional
2+
from typing import TYPE_CHECKING, Annotated
33

44
import strawberry
5+
import strawberry_django
56

6-
from ..helpers.i18n import make_localized_resolver
7-
from ..helpers.images import resolve_image
8-
from ..helpers.maps import Map, resolve_map
9-
from typing import TYPE_CHECKING, Annotated
7+
from api.helpers.i18n import make_localized_resolver
8+
from api.helpers.images import resolve_image
9+
from api.helpers.maps import Map, resolve_map
10+
from events import models
1011

1112
if TYPE_CHECKING:
1213
from api.conferences.types import Conference
1314

1415

15-
@strawberry.type
16+
@strawberry_django.type(models.Event)
1617
class Event:
17-
id: strawberry.ID
18+
id: strawberry.auto
1819
conference: Annotated["Conference", strawberry.lazy("api.conferences.types")]
19-
title: str = strawberry.field(resolver=make_localized_resolver("title"))
20-
slug: str = strawberry.field(resolver=make_localized_resolver("slug"))
21-
content: str = strawberry.field(resolver=make_localized_resolver("content"))
22-
map: Optional[Map] = strawberry.field(resolver=resolve_map)
23-
image: Optional[str] = strawberry.field(resolver=resolve_image)
24-
location_name: Optional[str]
25-
start: datetime
26-
end: datetime
20+
title: str = strawberry_django.field(
21+
resolver=make_localized_resolver("title"), only=["title"]
22+
)
23+
slug: str = strawberry_django.field(
24+
resolver=make_localized_resolver("slug"), only=["slug"]
25+
)
26+
content: str = strawberry_django.field(
27+
resolver=make_localized_resolver("content"), only=["content"]
28+
)
29+
map: Map | None = strawberry_django.field(
30+
resolver=resolve_map,
31+
only=["latitude", "longitude", "map_link"],
32+
)
33+
image: str | None = strawberry_django.field(
34+
resolver=resolve_image,
35+
only=["image"],
36+
)
37+
location_name: str | None = strawberry_django.field(only=["location_name"])
38+
start: datetime = strawberry_django.field(only=["start"])
39+
end: datetime = strawberry_django.field(only=["end"])

0 commit comments

Comments
 (0)