Keep namedtuples for data_fields dict values

This commit is contained in:
Mira Weller
2025-07-01 13:43:42 +02:00
parent 17c1d75780
commit 9a2464db17

View File

@@ -267,20 +267,20 @@ class OutboundSyncProvider:
@cached_property @cached_property
def data_fields(self): def data_fields(self):
return { return {
f.key: (f.required_input, f.label, f.type, f.enum_opts, f.getter) f.key: f
for f in get_data_fields(self.event) for f in get_data_fields(self.event)
} }
def get_field_value(self, inputs, mapping_entry): def get_field_value(self, inputs, mapping_entry):
key = mapping_entry["pretix_field"] key = mapping_entry["pretix_field"]
try: try:
required_input, label, ptype, enum_opts, getter = self.data_fields[key] field = self.data_fields[key]
except KeyError: except KeyError:
raise SyncConfigError(['Field "%s" is not valid for %s. Please check your %s settings.' % (key, "/".join(inputs.keys()), self.display_name)]) raise SyncConfigError(['Field "%s" is not valid for %s. Please check your %s settings.' % (key, "/".join(inputs.keys()), self.display_name)])
input = inputs[required_input] input = inputs[field.required_input]
val = getter(input) val = field.getter(input)
if isinstance(val, list): if isinstance(val, list):
if enum_opts and mapping_entry.get("value_map"): if field.enum_opts and mapping_entry.get("value_map"):
map = json.loads(mapping_entry["value_map"]) map = json.loads(mapping_entry["value_map"])
try: try:
val = [map[el] for el in val] val = [map[el] for el in val]