From 98ad9105327509ed292ff7552cc1ff063fb6f34d Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Tue, 2 Feb 2021 09:09:54 +0100 Subject: [PATCH] adding size fields to task adding status buttons to GUI --- atdb/taskdatabase/models.py | 5 +++ atdb/taskdatabase/services/algorithms.py | 11 ++++-- .../templates/taskdatabase/index.html | 2 +- .../templates/taskdatabase/tasks.html | 37 +++---------------- 4 files changed, 20 insertions(+), 35 deletions(-) diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index ad672958..e52e9478 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -38,6 +38,11 @@ class Task(models.Model): outputs = models.JSONField(null=True, blank=True) metrics = models.JSONField(null=True, blank=True) + size_to_process = models.IntegerField(null=True) + size_processed = models.IntegerField(null=True) + total_processing_time = models.IntegerField(null=True) + + # relationships workflow = models.ForeignKey(Workflow, related_name='tasks', on_delete=models.SET_NULL, null=True, blank=True) predecessor = models.ForeignKey('self', related_name='successors', on_delete=models.SET_NULL, null=True, blank=True) diff --git a/atdb/taskdatabase/services/algorithms.py b/atdb/taskdatabase/services/algorithms.py index c4a434df..76f98a90 100644 --- a/atdb/taskdatabase/services/algorithms.py +++ b/atdb/taskdatabase/services/algorithms.py @@ -4,8 +4,8 @@ Date created: 2019-04-04 Description: Business logic for ATDB. These functions are called from the views (views.py). """ -import time -import datetime + +from django.db.models import Sum import logging from .common import timeit from ..models import Task @@ -27,7 +27,12 @@ def get_size(status_list): logger.info("get_size("+status_list+")") #todo: implement - return -1 + query = field + '__sum' + sum_value = Task.objects.filter(status__in=status_list).aggregate(Sum(field))[query] + if sum_value == None: + sum_value = 0.0 + return sum_value + diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index 7be4eb6e..44627b0f 100644 --- a/atdb/taskdatabase/templates/taskdatabase/index.html +++ b/atdb/taskdatabase/templates/taskdatabase/index.html @@ -25,7 +25,7 @@ <th>Created</th> <th>Size</th> - <th>Actions</th> + <th>Set Status</th> </tr> </thead> <tbody> diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks.html b/atdb/taskdatabase/templates/taskdatabase/tasks.html index 05466f33..87191330 100644 --- a/atdb/taskdatabase/templates/taskdatabase/tasks.html +++ b/atdb/taskdatabase/templates/taskdatabase/tasks.html @@ -19,44 +19,19 @@ <td> {% if task.status == "defining" %} - <a href="{% url 'task-setstatus-view' task.pk 'defined' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Stage</a> + <a href="{% url 'task-setstatus-view' task.pk 'defined' my_tasks.number %}" class="btn btn-success btn-sm" role="button">Stage</a> {% endif %} - {% if task.status == "defined" or task.status == "staging" or task.status == "staged" %} + {% if task.status != "defining" %} <a href="{% url 'task-setstatus-view' task.pk 'defining' my_tasks.number %}" class="btn btn-warning btn-sm" role="button">Reset</a> {% endif %} - {% if task.status == "submitted" or task.status == "submitting" %} - <a href="{% url 'task-setstatus-view' task.pk 'defined' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Stage</a> - {% endif %} - - {% if task.status == "completed" or task.status == "incomplete" %} - <a href="{% url 'task-setstatus-view' task.pk 'valid' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Ready to Ingest</a> - {% endif %} + <a href="{% url 'task-setstatus-view' task.pk 'staged' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">staged</a> + <a href="{% url 'task-setstatus-view' task.pk 'processed' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">processed</a> + <a href="{% url 'task-setstatus-view' task.pk 'validated' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">validated</a> + <a href="{% url 'task-setstatus-view' task.pk 'ingested' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">ingested</a> - {% if task.status == "error (no completing)" or task.status == "defined" %} - <a href="{% url 'task-setstatus-view' task.pk 'completing' my_tasks.number %}" class="btn btn-success btn-sm" role="button">Completing</a> - {% endif %} - - {% if task.status == "valid" %} - <a href="{% url 'task-setstatus-view' task.pk 'valid_priority' my_tasks.number %}" class="btn btn-warning btn-sm" role="button">Priority Ingest</a> - <a href="{% url 'task-setstatus-view' task.pk 'completed' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Cancel Ingest</a> - {% endif %} - {% if task.status == "valid_priority" %} - <a href="{% url 'task-setstatus-view' task.pk 'valid' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Cancel Priority</a> - <a href="{% url 'task-setstatus-view' task.pk 'completed' my_tasks.number %}" class="btn btn-primary btn-sm" role="button">Cancel Ingest</a> - {% endif %} - - {% if task.status == "archived" %} - <a href="{% url 'task-setquality-view' task.pk 'data_is_good' my_tasks.number %}" class="btn btn-success btn-sm" role="button">Data is Good</a> - <a href="{% url 'task-setquality-view' task.pk 'data_is_bad' my_tasks.number %}" class="btn btn-danger btn-sm" role="button">Data is Bad</a> - {% endif %} - - {% if task.status == "removed" and task.quality == "unknown" %} - <a href="{% url 'task-setquality-view' task.pk 'data_is_good' my_tasks.number %}" class="btn btn-success btn-sm" role="button">Data is Good</a> - <a href="{% url 'task-setquality-view' task.pk 'data_is_bad' my_tasks.number %}" class="btn btn-danger btn-sm" role="button">Data is Bad</a> - {% endif %} </td> </tr> -- GitLab