diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index 6bd4778ed6d18cefe72f80915f05fe47eaa5fa44..ddf22e8bedb2d4a0bf06b45ebe40b2a6edada853 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 670ef18bc6c688399eefdba5998454eabad4856d..5a2ffc66b4bd0833fab58b89b620e86f817016eb 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 158027fc1af3d065187bc6803e6023eb9e7022e4..9e4e353c01d51806981ca8f8df974c07883e73be 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 132285ae5de3bdf87a943317e06a5ea9d2988af6..89ac9f351ab01571d0d1fddcae02aff03a08a26e 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 721016e9171c1698b50d65f7a508b9b17ec709b1..4d6eadca20ea9d0c0d0ad2b7ca9c99409d2b1089 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/