@@ -90,15 +90,19 @@ def duration_to_string(cls, v) -> str:
90
90
@field_validator ("resources" , mode = "before" )
91
91
@classmethod
92
92
def handle_resources (cls , v ) -> list [dict [str , str ]] | None :
93
- if v and all (isinstance (res , int ) for res in v ):
94
- # currently, ?expand=resources is broken in Pretalx
95
- # https://github.com/pretalx/pretalx/issues/2040
96
- return None
97
93
return v or None
98
94
99
95
@model_validator (mode = "before" )
100
96
@classmethod
101
97
def process_values (cls , values ) -> dict :
98
+ # Transform resource information
99
+ if raw_resources := values .get ("resources" ):
100
+ resources = [
101
+ {"description" : res ["description" ], "resource" : res ["resource" ]}
102
+ for res in raw_resources
103
+ ]
104
+ values ["resources" ] = resources
105
+
102
106
# Set slot information
103
107
if values .get ("slots" ):
104
108
slot = PretalxSlot .model_validate (values ["slots" ][0 ])
@@ -169,6 +173,9 @@ def process_values(cls, values) -> dict:
169
173
# merge submission fields into slot
170
174
slot_dict .update (slot_dict .get ("submission" , {}))
171
175
176
+ # remove resource IDs (not expandable with API, not required for schedule)
177
+ slot_dict .pop ("resources" , None )
178
+
172
179
submission_slots .append (slot_dict )
173
180
174
181
values ["slots" ] = submission_slots
0 commit comments