M: Remove schema_id from RSForm items

This commit is contained in:
Ivan 2024-12-17 22:20:33 +03:00
parent 79f6d4cdb1
commit 99ffbb9835

View File

@ -137,6 +137,7 @@ class RSFormSerializer(serializers.ModelSerializer):
result['inheritance'] = [] result['inheritance'] = []
for cst in RSForm(instance).constituents().defer('order').order_by('order'): for cst in RSForm(instance).constituents().defer('order').order_by('order'):
result['items'].append(CstSerializer(cst).data) result['items'].append(CstSerializer(cst).data)
del result['items'][-1]['schema']
for oss in LibraryItem.objects.filter(operations__result=instance).only('alias'): for oss in LibraryItem.objects.filter(operations__result=instance).only('alias'):
result['oss'].append({ result['oss'].append({
'id': oss.pk, 'id': oss.pk,
@ -178,6 +179,7 @@ class RSFormSerializer(serializers.ModelSerializer):
cst.delete() cst.delete()
else: else:
cst_data = next(x for x in items if x['id'] == cst.pk) cst_data = next(x for x in items if x['id'] == cst.pk)
cst_data['schema'] = self.instance.pk
new_cst = CstBaseSerializer(data=cst_data) new_cst = CstBaseSerializer(data=cst_data)
new_cst.is_valid(raise_exception=True) new_cst.is_valid(raise_exception=True)
new_cst.validated_data['order'] = ids.index(cst.pk) new_cst.validated_data['order'] = ids.index(cst.pk)
@ -192,6 +194,7 @@ class RSFormSerializer(serializers.ModelSerializer):
cst = schema.insert_new(cst_data['alias']) cst = schema.insert_new(cst_data['alias'])
old_id = cst_data['id'] old_id = cst_data['id']
cst_data['id'] = cst.pk cst_data['id'] = cst.pk
cst_data['schema'] = self.instance.pk
new_cst = CstBaseSerializer(data=cst_data) new_cst = CstBaseSerializer(data=cst_data)
new_cst.is_valid(raise_exception=True) new_cst.is_valid(raise_exception=True)
new_cst.validated_data['order'] = ids.index(old_id) new_cst.validated_data['order'] = ids.index(old_id)