Skip to content

Commit b720285

Browse files
authored
New fields for schedule (#45)
* Include new fields for the speaker data in the schedule * Add track to schedule data * oops * double oops * triple oops
1 parent 861e22b commit b720285

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

src/models/europython.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,18 @@ def extract_answers(cls, values) -> dict:
178178
return values
179179

180180

181+
class EuroPythonScheduleSpeaker(BaseModel):
182+
"""
183+
Model for EuroPython schedule speaker data
184+
"""
185+
186+
code: str
187+
name: str
188+
avatar: str
189+
slug: str
190+
website_url: str
191+
192+
181193
class EuroPythonScheduleSession(BaseModel):
182194
"""
183195
Model for EuroPython schedule session data
@@ -188,7 +200,8 @@ class EuroPythonScheduleSession(BaseModel):
188200
slug: str
189201
title: str
190202
session_type: str
191-
speakers: list[dict[str, str]] # code, name, website_url
203+
speakers: list[EuroPythonScheduleSpeaker]
204+
track: str | None
192205
tweet: str
193206
level: str
194207
total_duration: int = Field(..., exclude=True)

src/utils/transform.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from src.models.europython import (
22
EuroPythonScheduleBreak,
33
EuroPythonScheduleSession,
4+
EuroPythonScheduleSpeaker,
45
EuroPythonSession,
56
EuroPythonSpeaker,
67
Schedule,
@@ -99,11 +100,6 @@ def pretalx_schedule_to_europython_schedule(
99100
Transforms the given Pretalx schedule to EuroPython schedule
100101
"""
101102

102-
speakers_values = ep_speakers.values()
103-
speaker_code_to_name = {s.code: s.name for s in speakers_values}
104-
speaker_code_to_slug = {s.code: s.slug for s in speakers_values}
105-
speaker_code_to_website_url = {s.code: s.website_url for s in speakers_values}
106-
107103
# Merge breaks with the same start and end times
108104
breaks = Utils.merge_breaks(breaks)
109105
ep_breaks = []
@@ -130,14 +126,16 @@ def pretalx_schedule_to_europython_schedule(
130126
title=session.title,
131127
session_type=session.session_type,
132128
speakers=[
133-
{
134-
"code": speaker_code,
135-
"name": speaker_code_to_name[speaker_code],
136-
"slug": speaker_code_to_slug[speaker_code],
137-
"website_url": speaker_code_to_website_url[speaker_code],
138-
}
129+
EuroPythonScheduleSpeaker(
130+
code=speaker_code,
131+
name=ep_speakers[speaker_code].name,
132+
avatar=ep_speakers[speaker_code].avatar,
133+
slug=ep_speakers[speaker_code].slug,
134+
website_url=ep_speakers[speaker_code].website_url,
135+
)
139136
for speaker_code in session.speakers
140137
],
138+
track=session.track,
141139
tweet=session.tweet,
142140
level=session.level,
143141
total_duration=int(session.duration),

0 commit comments

Comments
 (0)