Skip to content
Snippets Groups Projects
Select Git revision
  • fcdb7f3f8549de7f25093c6fc6d2785a552c0289
  • master default protected
  • deploy-components-parallel
  • fix-chrony-exporter
  • L2SS-2407-swap-iers-caltable-monitoring-port
  • L2SS-2357-fix-ruff
  • sync-up-with-meta-pypcc
  • stabilise-landing-page
  • all-stations-lofar2
  • v0.39.7-backports
  • Move-sdptr-to-v1.5.0
  • fix-build-ubuntu
  • tokens-in-env-files
  • fix-build
  • L2SS-2214-deploy-cdb
  • fix-missing-init
  • add-power-hardware-apply
  • L2SS-2129-Add-Subrack-Routine
  • Also-listen-internal-to-rpc
  • fix-build-dind
  • L2SS-2153--Improve-Error-Handling
  • v0.52.8-rc1 protected
  • v0.55.5 protected
  • v0.55.4 protected
  • 0.55.2.dev0
  • 0.55.1.dev0
  • 0.55.0.dev0
  • v0.54.0 protected
  • 0.53.2.dev0
  • 0.53.1.dev0
  • v0.52.3-r2 protected
  • remove-snmp-client
  • v0.52.3 protected
  • v0.52.3dev0 protected
  • 0.53.1dev0
  • v0.52.2-rc3 protected
  • v0.52.2-rc2 protected
  • v0.52.2-rc1 protected
  • v0.52.1.1 protected
  • v0.52.1 protected
  • v0.52.1-rc1 protected
41 results

lofar_device.py

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