Skip to content
Snippets Groups Projects
scheduling.py 4.34 KiB
Newer Older
"""
This file contains the viewsets (based on the elsewhere defined data models and serializers)
"""

from django.shortcuts import get_object_or_404
from rest_framework import viewsets
from .lofar_viewset import LOFARViewSet
from .. import models
from .. import serializers

class SubtaskConnectorViewSet(LOFARViewSet):
    queryset = models.SubtaskConnector.objects.all()
    serializer_class = serializers.SubtaskConnectorSerializer
class SubtaskStateViewSet(LOFARViewSet):
    queryset = models.SubtaskState.objects.all()
    serializer_class = serializers.SubtaskStateSerializer
class SubtaskTypeViewSet(LOFARViewSet):
    queryset = models.SubtaskType.objects.all()
    serializer_class = serializers.SubtaskTypeSerializer
class StationTypeViewSet(LOFARViewSet):
    queryset = models.StationType.objects.all()
    serializer_class = serializers.StationTypeSerializer
    queryset = models.Algorithm.objects.all()
    serializer_class = serializers.AlgorithmSerializer


class ScheduleMethodViewSet(LOFARViewSet):
    queryset = models.ScheduleMethod.objects.all()
    serializer_class = serializers.ScheduleMethodSerializer


class SubtaskTemplateViewSet(LOFARViewSet):
    queryset = models.SubtaskTemplate.objects.all()
    serializer_class = serializers.SubtaskTemplateSerializer
    def get_queryset(self):
        queryset = models.SubtaskTemplate.objects.all()

        # query by name
        name = self.request.query_params.get('name', None)
        if name is not None:
            return queryset.filter(name=name)

        return queryset
class DefaultSubtaskTemplateViewSet(LOFARViewSet):
    queryset = models.DefaultSubtaskTemplate.objects.all()
    serializer_class = serializers.DefaultSubtaskTemplateSerializer
class DataproductSpecificationsTemplateViewSet(LOFARViewSet):
    queryset = models.DataproductSpecificationsTemplate.objects.all()
    serializer_class = serializers.DataproductSpecificationsTemplateSerializer


class DefaultDataproductSpecificationsTemplateViewSet(LOFARViewSet):
    queryset = models.DefaultDataproductSpecificationsTemplate.objects.all()
    serializer_class = serializers.DefaultDataproductSpecificationsTemplateSerializer


class SubtaskInputSelectionTemplateViewSet(LOFARViewSet):
    queryset = models.SubtaskInputSelectionTemplate.objects.all()
    serializer_class = serializers.SubtaskInputSelectionTemplateSerializer
class DataproductFeedbackTemplateViewSet(LOFARViewSet):
    queryset = models.DataproductFeedbackTemplate.objects.all()
    serializer_class = serializers.DataproductFeedbackTemplateSerializer
    queryset = models.Subtask.objects.all()
    serializer_class = serializers.SubtaskSerializer
    def get_queryset(self):
        if 'task_blueprint_pk' in self.kwargs:
            task_blueprint = get_object_or_404(models.TaskBlueprint, pk=self.kwargs['task_blueprint_pk'])
            return task_blueprint.subtasks.all()
        else:
            return models.Subtask.objects.all()

class SubtaskInputViewSet(LOFARViewSet):
    queryset = models.SubtaskInput.objects.all()
    serializer_class = serializers.SubtaskInputSerializer


class SubtaskOutputViewSet(LOFARViewSet):
    queryset = models.SubtaskOutput.objects.all()
    serializer_class = serializers.SubtaskOutputSerializer
class DataproductViewSet(LOFARViewSet):
    queryset = models.Dataproduct.objects.all()
    serializer_class = serializers.DataproductSerializer


class AntennaSetViewSet(LOFARViewSet):
    queryset = models.AntennaSet.objects.all()
    serializer_class = serializers.AntennaSetSerializer


class DataproductTransformViewSet(LOFARViewSet):
    queryset = models.DataproductTransform.objects.all()
    serializer_class = serializers.DataproductTransformSerializer


    queryset = models.Filesystem.objects.all()
    serializer_class = serializers.FilesystemSerializer


    queryset = models.Cluster.objects.all()
    serializer_class = serializers.ClusterSerializer


class DataproductArchiveInfoViewSet(LOFARViewSet):
    queryset = models.DataproductArchiveInfo.objects.all()
    serializer_class = serializers.DataproductArchiveInfoSerializer


class DataproductHashViewSet(LOFARViewSet):
    queryset = models.DataproductHash.objects.all()
    serializer_class = serializers.DataproductHashSerializer