QuestionnaireChild: system_question und user_question in system_datafield und user_datafield umbenennen

This commit is contained in:
Mira Weller
2026-09-15 16:37:22 +02:00
parent 59cebf3ee8
commit 53a8a7954d
12 changed files with 50 additions and 48 deletions
+1 -1
View File
@@ -979,7 +979,7 @@ class DeviceEventSettingsSerializer(EventSettingsSerializer):
'reusable_media_type_nfc_mf0aes',
'reusable_media_type_nfc_mf0aes_random_uid',
'reusable_media_usage_enforced',
'system_question_order',
'system_question_order', # TODO - remove or replace
'tax_rule_payment',
'tax_rule_cancellation',
]
+11 -11
View File
@@ -632,18 +632,18 @@ class QuestionRefField(serializers.PrimaryKeyRelatedField):
def to_representation(self, qc):
if not qc:
return None
elif qc.system_question:
return qc.system_question
elif qc.user_question_id:
return qc.user_question_id
elif qc.system_datafield:
return qc.system_datafield
elif qc.user_datafield_id:
return qc.user_datafield_id
else:
return None
def to_internal_value(self, data):
if type(data) == int:
return {'user_question': super().to_internal_value(data), 'system_question': None}
return {'user_datafield': super().to_internal_value(data), 'system_datafield': None}
elif type(data) == str or data is None:
return {'user_question': None, 'system_question': data}
return {'user_datafield': None, 'system_datafield': data}
else:
self.fail('incorrect_type', data_type=type(data).__name__)
@@ -737,13 +737,13 @@ class QuestionnaireSerializer(I18nAwareModelSerializer):
prev_questions = {}
for child in value:
if child.get('dependency_question'):
if (child['dependency_question']['user_question'] or child['dependency_question']['system_question']) not in prev_questions:
if (child['dependency_question']['user_datafield'] or child['dependency_question']['system_datafield']) not in prev_questions:
raise ValidationError('A question can only depend on a previous question from the same questionnaire.')
if child['user_question']:
prev_questions[child['user_question']] = child
if child['system_question']:
prev_questions[child['system_question']] = child
if child['user_datafield']:
prev_questions[child['user_datafield']] = child
if child['system_datafield']:
prev_questions[child['system_datafield']] = child
return value
@transaction.atomic