From 32c11508f274e8778e956ec256dab719fc64ae1d Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Thu, 21 Jan 2021 15:59:44 +0100 Subject: [PATCH] add log_entries to task serializer --- atdb/taskdatabase/models.py | 5 +++-- atdb/taskdatabase/serializers.py | 22 ++++++++++++++----- .../templates/taskdatabase/index.html | 6 +++-- .../templates/taskdatabase/tasks.html | 17 +++++--------- atdb/taskdatabase/views.py | 2 +- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index 6bd4778e..ddf22e8b 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -56,7 +56,7 @@ class Task(models.Model): class LogEntry(models.Model): - task = models.ForeignKey(Task, related_name='tasks', on_delete=models.CASCADE, null=False) + task = models.ForeignKey(Task, related_name='log_entries', on_delete=models.CASCADE, null=False) cpu_cycles = models.IntegerField(null=True,blank=True) wall_clock_time = models.IntegerField(null=True,blank=True) url_to_log_file = models.CharField(max_length=100, blank=True, null=True) @@ -66,7 +66,8 @@ class LogEntry(models.Model): status = models.CharField(max_length=50,default="defined", blank=True, null=True) def __str__(self): - return str(self.id)+' - ('+str(self.task__taskID)+')' + return str(self.id)+' - ('+str(self.task)+')' + class Status(models.Model): name = models.CharField(max_length=50, default="unknown") diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py index 670ef18b..5a2ffc66 100644 --- a/atdb/taskdatabase/serializers.py +++ b/atdb/taskdatabase/serializers.py @@ -17,6 +17,13 @@ class WorkflowSerializer(serializers.ModelSerializer): fields = "__all__" +class LogEntrySerializer(serializers.ModelSerializer): + + class Meta: + model = LogEntry + fields = "__all__" + + class TaskSerializer(serializers.ModelSerializer): status_history = serializers.StringRelatedField( @@ -24,6 +31,12 @@ class TaskSerializer(serializers.ModelSerializer): required=False, ) + log_entries = serializers.StringRelatedField( + many=True, + required=False + ) + + class Meta: model = Task fields = ('id','task_type','taskID', @@ -32,7 +45,9 @@ class TaskSerializer(serializers.ModelSerializer): 'new_workflow_id','new_workflow_uri','workflow', 'stage_request_id', 'status','new_status', - 'inputs','outputs','status_history',) + 'inputs','outputs','status_history', + 'log_entries' + ) class StatusSerializer(serializers.ModelSerializer): @@ -54,8 +69,3 @@ class WorkflowSerializer(serializers.ModelSerializer): fields = "__all__" -class LogEntrySerializer(serializers.ModelSerializer): - - class Meta: - model = LogEntry - fields = "__all__" \ No newline at end of file diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index 158027fc..9e4e353c 100644 --- a/atdb/taskdatabase/templates/taskdatabase/index.html +++ b/atdb/taskdatabase/templates/taskdatabase/index.html @@ -18,10 +18,12 @@ <thead> <tr> <th width="5%">TaskID</th> + <th>Status</th> <th width="3%">task_type</th> + <th>Project</th> - <th>Workflow</th> - <th>Status</th> + <th width="15%">Workflow</th> + <th>Created</th> <th>Size</th> diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks.html b/atdb/taskdatabase/templates/taskdatabase/tasks.html index 132285ae..89ac9f35 100644 --- a/atdb/taskdatabase/templates/taskdatabase/tasks.html +++ b/atdb/taskdatabase/templates/taskdatabase/tasks.html @@ -8,14 +8,12 @@ <td> <a href="{{ task.get_absolute_url }}" target="_blank">{{ task.taskID }} </a> </td> - - <td> - {{ task.task_type }} - </td> + <td>{{ task.status }}</td> + <td>{{ task.task_type }}</td> <td>{{ task.project }}</td> <td>{{ task.workflow }} - <td>{{ task.status }}</td> + <td>{{ task.creationTime|date:"Y-m-d H:i:s" }} </td> <td>{{ task.size|filesizeformat }} </td> </td> @@ -23,14 +21,11 @@ <td> {% if task.status == "defined" %} - <a href="{% url 'task-setstatus-view' task.pk 'scheduled' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Schedule</a> + <a href="{% url 'task-setstatus-view' task.pk 'defining' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">To Defining</a> {% endif %} - {% if task.status == "scheduled" %} - <a href="{% url 'task-setstatus-view' task.pk 'defined' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Unschedule</a> - {% if not task.skip_auto_ingest %} - <a href="{% url 'task-skipautoingest-view' task.pk 'true' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Skip Ingest</a> - {% endif %} + {% if task.status == "submitted" %} + <a href="{% url 'task-setstatus-view' task.pk 'defined' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">To Defined</a> {% endif %} {% if task.status == "completed" or task.status == "incomplete" %} diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 721016e9..4d6eadca 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -174,7 +174,7 @@ class LogEntryListViewAPI(generics.ListCreateAPIView): serializer_class = LogEntrySerializer filter_backends = (filters.DjangoFilterBackend,) - filter_class = WorkflowFilter + filter_class = LogEntryFilter # example: /atdb/workflows/5/ -- GitLab