From 39cad9843f4f38a12e8b85322d275134bbe6bad2 Mon Sep 17 00:00:00 2001
From: Fabio Roberto Vitello <fabio.vitello@inaf.it>
Date: Wed, 17 Jun 2020 12:55:49 +0200
Subject: [PATCH] TMSS-50: SchedulingRelationPlacement Abstract Choice model

- Added SchedulingRelationPlacement population
- Added scheduling_relation_placement url
---
 SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py   | 9 +++++++++
 SAS/TMSS/src/tmss/tmssapp/models/specification.py      | 2 +-
 SAS/TMSS/src/tmss/tmssapp/populate.py                  | 2 +-
 SAS/TMSS/src/tmss/tmssapp/serializers/specification.py | 7 ++++++-
 SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py       | 4 ----
 SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py    | 3 +++
 SAS/TMSS/src/tmss/urls.py                              | 1 +
 7 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py b/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py
index af286d3fe40..21948bcdfee 100644
--- a/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py
+++ b/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py
@@ -367,6 +367,15 @@ class Migration(migrations.Migration):
                 'abstract': False,
             },
         ),
+        migrations.CreateModel(
+            name='SchedulingRelationPlacement',
+            fields=[
+                ('value', models.CharField(max_length=128, primary_key=True, serialize=False, unique=True)),
+            ],
+            options={
+                'abstract': False,
+            },
+        ),
         migrations.CreateModel(
             name='SchedulingSet',
             fields=[
diff --git a/SAS/TMSS/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/src/tmss/tmssapp/models/specification.py
index 225dde5cefc..485dfb0d126 100644
--- a/SAS/TMSS/src/tmss/tmssapp/models/specification.py
+++ b/SAS/TMSS/src/tmss/tmssapp/models/specification.py
@@ -136,7 +136,7 @@ class SchedulingRelationPlacement(AbstractChoice):
     class Choices(Enum):
         BEFORE = "before"
         AFTER = "after"
-        PARALLEL = "paralle"
+        PARALLEL = "parallel"
        
 
 
diff --git a/SAS/TMSS/src/tmss/tmssapp/populate.py b/SAS/TMSS/src/tmss/tmssapp/populate.py
index 7a16ac32591..0cf8694c4e6 100644
--- a/SAS/TMSS/src/tmss/tmssapp/populate.py
+++ b/SAS/TMSS/src/tmss/tmssapp/populate.py
@@ -32,7 +32,7 @@ def populate_choices(apps, schema_editor):
     :return: None
     '''
     for choice_class in [Role, Datatype, Dataformat, CopyReason,
-                         SubtaskState, SubtaskType, StationType, Algorithm, ScheduleMethod]:
+                         SubtaskState, SubtaskType, StationType, Algorithm, ScheduleMethod, SchedulingRelationPlacement]:
         choice_class.objects.bulk_create([choice_class(value=x.value) for x in choice_class.Choices])
 
 
diff --git a/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py b/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py
index 6c02a268017..6982bcd2fec 100644
--- a/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py
+++ b/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py
@@ -83,11 +83,16 @@ class DefaultTaskRelationSelectionTemplateSerializer(serializers.HyperlinkedMode
         fields = '__all__'
 
 
-class RoleSerializer(serializers.ModelSerializer):
+class RoleSerializer():
     class Meta:
         model = models.Role
         fields = '__all__'
 
+class SchedulingRelationPlacementSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = models.SchedulingRelationPlacement
+        fields = '__all__'
+
 
 class DatatypeSerializer(serializers.ModelSerializer):
     class Meta:
diff --git a/SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py b/SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py
index 9d5cdd57e0f..b63794c1a6c 100644
--- a/SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py
+++ b/SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py
@@ -67,22 +67,18 @@ class SubtaskTypeViewSet(LOFARViewSet):
     queryset = models.SubtaskType.objects.all()
     serializer_class = serializers.SubtaskTypeSerializer
 
-
 class StationTypeViewSet(LOFARViewSet):
     queryset = models.StationType.objects.all()
     serializer_class = serializers.StationTypeSerializer
 
-
 class AlgorithmViewSet(LOFARViewSet):
     queryset = models.Algorithm.objects.all()
     serializer_class = serializers.AlgorithmSerializer
 
-
 class ScheduleMethodViewSet(LOFARViewSet):
     queryset = models.ScheduleMethod.objects.all()
     serializer_class = serializers.ScheduleMethodSerializer
 
-
 class SubtaskTemplateFilter(filters.FilterSet):
     class Meta:
         model = models.SubtaskTemplate
diff --git a/SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py b/SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py
index f84917c922c..8d92283f244 100644
--- a/SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py
+++ b/SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py
@@ -101,6 +101,9 @@ class RoleViewSet(LOFARViewSet):
     queryset = models.Role.objects.all()
     serializer_class = serializers.RoleSerializer
 
+class SchedulingRelationPlacement(LOFARViewSet):
+    queryset = models.SchedulingRelationPlacement.objects.all()
+    serializer_class = serializers.SchedulingRelationPlacementSerializer
 
 class DatatypeViewSet(LOFARViewSet):
     queryset = models.Datatype.objects.all()
diff --git a/SAS/TMSS/src/tmss/urls.py b/SAS/TMSS/src/tmss/urls.py
index fd3f909d3e2..189add6942f 100644
--- a/SAS/TMSS/src/tmss/urls.py
+++ b/SAS/TMSS/src/tmss/urls.py
@@ -120,6 +120,7 @@ router.register(r'subtask_type', viewsets.SubtaskTypeViewSet)
 router.register(r'station_type', viewsets.StationTypeViewSet)
 router.register(r'algorithm', viewsets.AlgorithmViewSet)
 router.register(r'schedule_method', viewsets.ScheduleMethodViewSet)
+router.register(r'scheduling_relation_placement', viewsets.SchedulingRelationPlacement)
 
 # templates
 router.register(r'subtask_template', viewsets.SubtaskTemplateViewSet)
-- 
GitLab