diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py index 7ac8e7f180609b2271ea07bda26672c66fea12f3..c945e7b454536de518f0223e09fb167dfc481d21 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 9d629398fb83d9ec645a474ead7ec6f69e556abd..4ad5ff4cddc1ca0c7c71658718b0b87136e8d23c 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