Skip to content
Snippets Groups Projects
Select Git revision
  • d2cd2d85e7c994fcb88a2aee79c3429b0dbb62c6
  • master default protected
  • L2SS-1914-fix_job_dispatch
  • TMSS-3170
  • TMSS-3167
  • TMSS-3161
  • TMSS-3158-Front-End-Only-Allow-Changing-Again
  • TMSS-3133
  • TMSS-3319-Fix-Templates
  • test-fix-deploy
  • TMSS-3134
  • TMSS-2872
  • defer-state
  • add-custom-monitoring-points
  • TMSS-3101-Front-End-Only
  • TMSS-984-choices
  • SDC-1400-Front-End-Only
  • TMSS-3079-PII
  • TMSS-2936
  • check-for-max-244-subbands
  • TMSS-2927---Front-End-Only-PXII
  • Before-Remove-TMSS
  • LOFAR-Release-4_4_318 protected
  • LOFAR-Release-4_4_317 protected
  • LOFAR-Release-4_4_316 protected
  • LOFAR-Release-4_4_315 protected
  • LOFAR-Release-4_4_314 protected
  • LOFAR-Release-4_4_313 protected
  • LOFAR-Release-4_4_312 protected
  • LOFAR-Release-4_4_311 protected
  • LOFAR-Release-4_4_310 protected
  • LOFAR-Release-4_4_309 protected
  • LOFAR-Release-4_4_308 protected
  • LOFAR-Release-4_4_307 protected
  • LOFAR-Release-4_4_306 protected
  • LOFAR-Release-4_4_304 protected
  • LOFAR-Release-4_4_303 protected
  • LOFAR-Release-4_4_302 protected
  • LOFAR-Release-4_4_301 protected
  • LOFAR-Release-4_4_300 protected
  • LOFAR-Release-4_4_299 protected
41 results

StationID.h

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    specification.py 7.52 KiB
    """
    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, serializers
    from rest_framework.renderers import BrowsableAPIRenderer, TemplateHTMLRenderer
    from rest_framework.decorators import permission_classes
    from rest_framework.permissions import IsAuthenticatedOrReadOnly, DjangoModelPermissions
    
    class TagsViewSet(LOFARViewSet):
        queryset = models.Tags.objects.all()
        serializer_class = serializers.TagsSerializer
    
    
    class GeneratorTemplateViewSet(LOFARViewSet):
        queryset = models.GeneratorTemplate.objects.all()
        serializer_class = serializers.GeneratorTemplateSerializer
    
    
    class DefaultGeneratorTemplateViewSet(LOFARViewSet):
        queryset = models.DefaultGeneratorTemplate.objects.all()
        serializer_class = serializers.DefaultGeneratorTemplateSerializer
    
    
    class SchedulingUnitTemplateViewSet(LOFARViewSet):
        queryset = models.SchedulingUnitTemplate.objects.all()
        serializer_class = serializers.SchedulingUnitTemplateSerializer
    
    
    class DefaultSchedulingUnitTemplateViewSet(LOFARViewSet):
        queryset = models.DefaultSchedulingUnitTemplate.objects.all()
        serializer_class = serializers.DefaultSchedulingUnitTemplateSerializer
    
    
    class TaskTemplateViewSet(LOFARViewSet):
        queryset = models.TaskTemplate.objects.all()
        serializer_class = serializers.TaskTemplateSerializer
    
    
    class DefaultTaskTemplateViewSet(LOFARViewSet):
        queryset = models.DefaultTaskTemplate.objects.all()
        serializer_class = serializers.DefaultTaskTemplateSerializer
    
    
    class WorkRelationSelectionTemplateViewSet(LOFARViewSet):
        queryset = models.WorkRelationSelectionTemplate.objects.all()
        serializer_class = serializers.WorkRelationSelectionTemplateSerializer
    
    
    class DefaultWorkRelationSelectionTemplateViewSet(LOFARViewSet):
        queryset = models.DefaultWorkRelationSelectionTemplate.objects.all()
        serializer_class = serializers.DefaultWorkRelationSelectionTemplateSerializer
    
    
    class RoleViewSet(LOFARViewSet):
        queryset = models.Role.objects.all()
        serializer_class = serializers.RoleSerializer
    
    
    class DatatypeViewSet(LOFARViewSet):
        queryset = models.Datatype.objects.all()
        serializer_class = serializers.DatatypeSerializer
    
    
    class DataformatViewSet(LOFARViewSet):
        queryset = models.Dataformat.objects.all()
        serializer_class = serializers.DataformatSerializer
    
    
    class CopyReasonViewSet(LOFARViewSet):
        queryset = models.CopyReason.objects.all()
        serializer_class = serializers.CopyReasonSerializer
    
    
    class TaskConnectorsViewSet(LOFARViewSet):
        queryset = models.TaskConnectors.objects.all()
        serializer_class = serializers.TaskConnectorsSerializer
    
    
    @permission_classes((DjangoModelPermissions,))   # example override of default permissions per viewset | todo: review for production
    class CycleViewSet(LOFARViewSet):
        queryset = models.Cycle.objects.all()
        serializer_class = serializers.CycleSerializer
    
    
    class ProjectViewSet(LOFARViewSet):
        queryset = models.Project.objects.all()
        serializer_class = serializers.ProjectSerializer
    
        def get_queryset(self):
            if 'cycle_pk' in self.kwargs:
                cycle = get_object_or_404(models.Cycle, pk=self.kwargs['cycle_pk'])
                return cycle.projects.all()
            else:
                return models.Project.objects.all()
    
    
    class SchedulingSetViewSet(LOFARViewSet):
        queryset = models.SchedulingSet.objects.all()
        serializer_class = serializers.SchedulingSetSerializer
    
    
    class SchedulingUnitDraftViewSet(LOFARViewSet):
        queryset = models.SchedulingUnitDraft.objects.all()
        serializer_class = serializers.SchedulingUnitDraftSerializer
    
        def get_queryset(self):
            if 'scheduling_set_pk' in self.kwargs:
                scheduling_set = get_object_or_404(models.SchedulingSet, pk=self.kwargs['scheduling_set_pk'])
                return scheduling_set.scheduling_unit_drafts.all()
            else:
                return models.SchedulingUnitDraft.objects.all()
    
    
    class SchedulingUnitBlueprintViewSet(LOFARViewSet):
        queryset = models.SchedulingUnitBlueprint.objects.all()
        serializer_class = serializers.SchedulingUnitBlueprintSerializer
    
        def get_queryset(self):
            if 'scheduling_unit_draft_pk' in self.kwargs:
                scheduling_unit_draft = get_object_or_404(models.SchedulingUnitDraft, pk=self.kwargs['scheduling_unit_draft_pk'])
                return scheduling_unit_draft.related_scheduling_unit_blueprint.all()
            else:
                return models.SchedulingUnitBlueprint.objects.all()
    
    
    class TaskDraftViewSet(LOFARViewSet):
        queryset = models.TaskDraft.objects.all()
        serializer_class = serializers.TaskDraftSerializer
    
        def get_queryset(self):
            if 'scheduling_unit_draft_pk' in self.kwargs:
                scheduling_unit_draft = get_object_or_404(models.SchedulingUnitDraft, pk=self.kwargs['scheduling_unit_draft_pk'])
                return scheduling_unit_draft.task_drafts.all()
            else:
                return models.TaskDraft.objects.all()
    
    
    class TaskBlueprintViewSet(LOFARViewSet):
        queryset = models.TaskBlueprint.objects.all()
        serializer_class = serializers.TaskBlueprintSerializer
    
        def get_queryset(self):
            if 'task_draft_pk' in self.kwargs:
                task_draft = get_object_or_404(models.TaskDraft, pk=self.kwargs['task_draft_pk'])
                return task_draft.related_task_blueprint.all()
            else:
                return models.TaskBlueprint.objects.all()
    
    
    class TaskRelationDraftViewSet(LOFARViewSet):
        queryset = models.TaskRelationDraft.objects.all()
        serializer_class = serializers.TaskRelationDraftSerializer
    
        def get_queryset(self):
            if 'task_draft_pk' in self.kwargs:
                task_draft = get_object_or_404(models.TaskDraft, pk=self.kwargs['task_draft_pk'])
                return task_draft.produced_by.all() | task_draft.consumed_by.all()
            else:
                return models.TaskRelationDraft.objects.all()
    
    
    class TaskRelationBlueprintViewSet(LOFARViewSet):
        queryset = models.TaskRelationBlueprint.objects.all()
        serializer_class = serializers.TaskRelationBlueprintSerializer
    
    
        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.produced_by.all() | task_blueprint.consumed_by.all()
            elif 'task_relation_draft_pk' in self.kwargs:
                task_relation_draft = get_object_or_404(models.TaskRelationDraft, pk=self.kwargs['task_relation_draft_pk'])
                return task_relation_draft.related_task_relation_blueprint.all()
            else:
                return models.TaskRelationBlueprint.objects.all()
    
    
    # --- JSON
    
    
    class TaskBlueprintViewSetReactJSONform(LOFARViewSet):
        queryset = models.TaskBlueprint.objects.all()
        serializer_class = serializers.TaskBlueprintSerializerReactJSONform
    
    
    class TaskBlueprintViewSetJSONeditor(LOFARViewSet):
        queryset = models.TaskBlueprint.objects.all()
        serializer_class = serializers.TaskBlueprintSerializerJSONeditor
    
    
    class TaskBlueprintViewSetJSONeditorOnline(LOFARViewSet):
        queryset = models.TaskBlueprint.objects.all()
        serializer_class = serializers.TaskBlueprintSerializerJSONeditorOnline
    
    
    # # todo: this is experimental / for demo purposes. Remove or make functional.
    # class JSONEditorViewSet(LOFARViewSet):
    #      renderer_classes = [TemplateHTMLRenderer]
    #      template_name = 'react_jsonschema_form.html'
    #      queryset = models.TaskBlueprint.objects.all()
    #      serializer_class = serializers.TaskBlueprintJSONSerializer