From 3a4a6e995c155baf3f36d9d2cda94f6047e5fb9b Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Tue, 16 Jan 2024 16:00:15 +0100 Subject: [PATCH] TMSS-2886: added SchedulingUnitBlueprintPublicSerializer --- .../tmss/tmssapp/serializers/specification.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/serializers/specification.py b/SAS/TMSS/backend/src/tmss/tmssapp/serializers/specification.py index cec4fd45dff..f24068cd0ce 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/serializers/specification.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/serializers/specification.py @@ -335,6 +335,30 @@ class SchedulingUnitBlueprintSlimSerializer(serializers.ModelSerializer): raise NotImplementedError("This serializer should only be used for fast querying existing scheduling units") +class SchedulingUnitBlueprintPublicSerializer(serializers.ModelSerializer): + '''A read-only serializer exposing public non-sensitive properties.''' + project = serializers.StringRelatedField(source='draft.scheduling_set.project.name', label='project', read_only=True) + on_sky_duration = FloatDurationField(read_only=True) + target_pointings_astropy = serializers.StringRelatedField(label='targets', read_only=True) + + class Meta: + model = models.SchedulingUnitBlueprint + read_only_fields = ['id', + 'status', + 'on_sky_start_time', + 'on_sky_stop_time', + 'on_sky_duration', + 'target_pointings_astropy', + 'project'] + fields = read_only_fields + + def create(self, validated_data): + raise NotImplementedError("This is a read-only serializer") + + def update(self, instance, validated_data): + raise NotImplementedError("This is a read-only serializer") + + class TaskBlueprintSlimSerializer(serializers.ModelSerializer): '''A small 'slim' serializer for the most relevant properties.''' duration = FloatDurationField(read_only=True) -- GitLab