From c57844cbe0a408ff14b4b9b0e080651cbf4432f7 Mon Sep 17 00:00:00 2001 From: mancini <mancini@astron.nl> Date: Wed, 20 Jan 2021 11:32:59 +0100 Subject: [PATCH] Visualize workflow object on readonly access --- atdb/taskdatabase/serializers.py | 17 +++++++++++++++++ atdb/taskdatabase/views.py | 8 ++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py index 7ac8e7f1..c945e7b4 100644 --- a/atdb/taskdatabase/serializers.py +++ b/atdb/taskdatabase/serializers.py @@ -30,6 +30,23 @@ class TaskSerializer(serializers.ModelSerializer): 'inputs','outputs','status_history') +class TaskReadSerializer(serializers.ModelSerializer): + status_history = serializers.StringRelatedField( + many=True, + required=False, + ) + + workflow = WorkflowSerializer(read_only=True) + class Meta: + model = Task + fields = ('id','task_type','taskID', + 'desired_predecessor_id','predecessor','successor', + 'project','sas_id','priority','purge_policy','skip', + 'workflow', + 'status','desired_status', + 'inputs','outputs','status_history') + + class StatusSerializer(serializers.ModelSerializer): class Meta: diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 9d629398..4ad5ff4c 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -14,7 +14,7 @@ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from .models import Task, Status, Workflow, LogEntry from django.db.models import Q -from .serializers import TaskSerializer, WorkflowSerializer, LogEntrySerializer +from .serializers import TaskSerializer, TaskReadSerializer, WorkflowSerializer, LogEntrySerializer from .forms import FilterForm from .services import algorithms @@ -133,7 +133,11 @@ class TaskListViewAPI(generics.ListCreateAPIView): model = Task queryset = Task.objects.all() serializer_class = TaskSerializer - + def get_serializer_class(self): + if self.request.method in ['GET']: + return TaskReadSerializer + else: + return TaskSerializer # using the Django Filter Backend - https://django-filter.readthedocs.io/en/latest/index.html filter_backends = (filters.DjangoFilterBackend,) filter_class = TaskFilter -- GitLab