Coverage for backend/django/flowsheetInternals/graphicData/serializers/groupingSerializer.py: 79%
33 statements
« prev ^ index » next coverage.py v7.10.7, created at 2026-07-22 05:22 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2026-07-22 05:22 +0000
1from core.serializer_base import StateOwnedModelSerializer
2from rest_framework import serializers
3from flowsheetInternals.unitops.models.SimulationObject import SimulationObject
4from flowsheetInternals.graphicData.models.groupingModel import Grouping
5from core.auxiliary.models.PropertyInfo import PropertyInfo
6from rest_framework.response import Response
7from drf_spectacular.utils import extend_schema_field
9class GroupingSerializer(StateOwnedModelSerializer):
10 x = serializers.FloatField(write_only=True, default=0.0, required=False)
11 y = serializers.FloatField(write_only=True, default=0.0, required=False)
12 width = serializers.FloatField(write_only=True, default=0.0, required=False)
13 height = serializers.FloatField(write_only=True, default=0.0, required=False)
14 offsetX = serializers.FloatField(write_only=True, default=0.0, required=False)
15 offsetY = serializers.FloatField(write_only=True, default=0.0, required=False)
16 propertyInfoRelations = serializers.SerializerMethodField()
20 class Meta:
21 model = Grouping
22 fields = '__all__'
25 def update(self, instance: Grouping, validated_data) -> Grouping:
26 simulationObjectInstances = []
27 simulationObjects = validated_data.pop('_simulationObjects', None)
28 if simulationObjects is not None: 28 ↛ 29line 28 didn't jump to line 29 because the condition on line 28 was never true
29 for simObj in simulationObjects:
30 simulationObjectInstances.append(SimulationObject.objects.get(pk=simObj))
31 instance.update_internal_graphic_objects([simObjInstance.graphicObject.first() for simObjInstance in simulationObjectInstances])
33 propertyInfos_data = validated_data.pop('propertyInfos', None)
34 if propertyInfos_data is not None: 34 ↛ 35line 34 didn't jump to line 35 because the condition on line 34 was never true
35 instance.propertyInfos.set(propertyInfos_data)
36 instance.save()
37 return instance
40 @extend_schema_field(serializers.ListField(child=serializers.ListField(child=serializers.IntegerField())))
41 def get_propertyInfoRelations(self, obj: Grouping):
42 return [[propertyInfo.id, propertyInfo.set.simulationObject.id] for propertyInfo in obj.propertyInfos.all()]