@@ -16,7 +16,7 @@ class PretalxAnswer(BaseModel):
1616 @model_validator (mode = "before" )
1717 @classmethod
1818 def extract (cls , values ) -> dict :
19- values ["question_text" ] = values ["question" ]["question" ][ "en" ]
19+ values ["question_text" ] = values ["question" ]["question" ]
2020 values ["answer_text" ] = values ["answer" ]
2121 values ["answer_file" ] = values ["answer_file" ]
2222 values ["submission_id" ] = values ["submission" ]
@@ -31,9 +31,9 @@ class PretalxSlot(BaseModel):
3131
3232 @field_validator ("room" , mode = "before" )
3333 @classmethod
34- def handle_localized (cls , v ) -> str | None :
34+ def handle_dict (cls , v ) -> str | None :
3535 if isinstance (v , dict ):
36- return v ["name" ]. get ( "en" )
36+ return v ["name" ]
3737 return v
3838
3939
@@ -63,6 +63,8 @@ class PretalxSubmission(BaseModel):
6363 state : SubmissionState
6464 abstract : str = ""
6565 duration : str = ""
66+ content_locale : str = Field (exclude = True )
67+ language : str = ""
6668 resources : list [dict [str , str | None ]] | None = None
6769 answers : list [PretalxAnswer ]
6870 slots : list [PretalxSlot ] = Field (default_factory = list , exclude = True )
@@ -75,9 +77,9 @@ class PretalxSubmission(BaseModel):
7577
7678 @field_validator ("submission_type" , "track" , mode = "before" )
7779 @classmethod
78- def handle_localized (cls , v ) -> str | None :
80+ def handle_dict (cls , v ) -> str | None :
7981 if isinstance (v , dict ):
80- return v ["name" ]. get ( "en" )
82+ return v ["name" ]
8183 return v
8284
8385 @field_validator ("duration" , mode = "before" )
@@ -95,6 +97,8 @@ def handle_resources(cls, v) -> list[dict[str, str]] | None:
9597 @model_validator (mode = "before" )
9698 @classmethod
9799 def process_values (cls , values ) -> dict :
100+ values ["language" ] = values ["content_locale" ]
101+
98102 # Transform resource information
99103 if raw_resources := values .get ("resources" ):
100104 resources = [
@@ -129,13 +133,6 @@ class PretalxScheduleBreak(BaseModel):
129133 end : datetime
130134 description : dict [str , str ] | str
131135
132- @field_validator ("description" , mode = "before" )
133- @classmethod
134- def handle_localized (cls , v ) -> str | Any :
135- if isinstance (v , dict ):
136- return v .get ("en" )
137- return v
138-
139136 @model_validator (mode = "before" )
140137 @classmethod
141138 def set_slot_info (cls , values ) -> dict :
0 commit comments