Skip to content
Snippets Groups Projects
Commit 9b22f8b6 authored by Nico Vermaas's avatar Nico Vermaas
Browse files

adding tasks-fast endpoint

parent 3cd51c86
No related branches found
No related tags found
3 merge requests!91Master,!90Master,!87adding tasks-fast endpoint
...@@ -92,7 +92,7 @@ class TaskReadSerializer(serializers.ModelSerializer): ...@@ -92,7 +92,7 @@ class TaskReadSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Task model = Task
fields = ('id','task_type','creationTime','filter','predecessor','successors', fields = ['id','task_type','creationTime','filter','predecessor','successors',
'project','sas_id','priority','purge_policy','resume', 'project','sas_id','priority','purge_policy','resume',
'workflow', 'workflow',
'stage_request_id', 'stage_request_id',
...@@ -100,8 +100,40 @@ class TaskReadSerializer(serializers.ModelSerializer): ...@@ -100,8 +100,40 @@ class TaskReadSerializer(serializers.ModelSerializer):
'inputs','outputs','metrics','status_history', 'inputs','outputs','metrics','status_history',
'size_to_process', 'size_processed', 'total_processing_time', 'size_to_process', 'size_processed', 'total_processing_time',
'log_entries' 'log_entries'
]
read_only_fields = fields
class TaskReadSerializerFast(serializers.ModelSerializer):
"""
status_history = serializers.StringRelatedField(
many=True,
required=False,
)
log_entries = serializers.StringRelatedField(
many=True,
required=False
) )
successors = serializers.StringRelatedField(
many=True,
required=False,
)
"""
class Meta:
model = Task
fields = ['id','task_type','creationTime','filter','predecessor',
'project','sas_id','priority','purge_policy','resume',
'workflow',
'stage_request_id',
'status','new_status',
'inputs','outputs','metrics',
'size_to_process', 'size_processed', 'total_processing_time',
]
read_only_fields = fields
class StatusSerializer(serializers.ModelSerializer): class StatusSerializer(serializers.ModelSerializer):
......
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
{% include 'taskdatabase/pagination.html' %} {% include 'taskdatabase/pagination.html' %}
</div> </div>
</div> </div>
<p class="footer"> Version 1.0.0 (25 mar 2021 - 18:00) <p class="footer"> Version 1.0.0 (26 mar 2021 - 19:00)
</div> </div>
......
...@@ -31,6 +31,7 @@ urlpatterns = [ ...@@ -31,6 +31,7 @@ urlpatterns = [
# --- REST API --- # --- REST API ---
path('tasks/', views.TaskListViewAPI.as_view(), name='tasks-api'), path('tasks/', views.TaskListViewAPI.as_view(), name='tasks-api'),
path('tasks/<int:pk>/', views.TaskDetailsViewAPI.as_view(), name='task-detail-view-api'), path('tasks/<int:pk>/', views.TaskDetailsViewAPI.as_view(), name='task-detail-view-api'),
path('tasks-fast/', views.TaskListViewAPIFast.as_view(), name='tasks-api-fast'),
path('workflows/', views.WorkflowListViewAPI.as_view(), name='workflows-api'), path('workflows/', views.WorkflowListViewAPI.as_view(), name='workflows-api'),
path('workflows/<int:pk>/', views.WorkflowDetailsViewAPI.as_view(), name='workflow-detail-view-api'), path('workflows/<int:pk>/', views.WorkflowDetailsViewAPI.as_view(), name='workflow-detail-view-api'),
......
...@@ -30,6 +30,7 @@ from django.db.models import Q ...@@ -30,6 +30,7 @@ from django.db.models import Q
from .serializers import \ from .serializers import \
TaskWriteSerializer, \ TaskWriteSerializer, \
TaskReadSerializer, \ TaskReadSerializer, \
TaskReadSerializerFast, \
WorkflowSerializer,\ WorkflowSerializer,\
LogEntrySerializer,\ LogEntrySerializer,\
ConfigurationSerializer ConfigurationSerializer
...@@ -312,6 +313,20 @@ class TaskListViewAPI(generics.ListCreateAPIView): ...@@ -312,6 +313,20 @@ class TaskListViewAPI(generics.ListCreateAPIView):
else: else:
return TaskWriteSerializer return TaskWriteSerializer
class TaskListViewAPIFast(generics.ListAPIView):
"""
A pagination list of tasks, unsorted.
"""
model = Task
queryset = Task.objects.all().order_by('-priority','id')
serializer_class = TaskReadSerializerFast
# using the Django Filter Backend - https://django-filter.readthedocs.io/en/latest/index.html
filter_backends = (filters.DjangoFilterBackend,)
filter_class = TaskFilter
# example: /atdb/tasks/5/ # example: /atdb/tasks/5/
# calling this view serializes a task in the REST API # calling this view serializes a task in the REST API
class TaskDetailsViewAPI(generics.RetrieveUpdateDestroyAPIView): class TaskDetailsViewAPI(generics.RetrieveUpdateDestroyAPIView):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment