From e7f2346bec41562f1de9fb3ca58467bc26ea48b0 Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Thu, 11 Mar 2021 09:22:49 +0100 Subject: [PATCH] add 'active tasks' button and filter added first dashboard layout (no content yet) --- atdb/atdb/settings/base.py | 2 +- .../templates/dashboard/details_card.html | 12 ++++++++++++ .../templates/dashboard/index.html | 7 ++++--- .../taskdatabase/filter/filter_buttons.html | 8 +++++--- .../templates/taskdatabase/index.html | 4 ++-- .../templates/taskdatabase/tasks.html | 19 +------------------ .../taskdatabase/tasks/details_card.html | 2 +- atdb/taskdatabase/urls.py | 2 +- atdb/taskdatabase/views.py | 18 ++++++++++++++---- 9 files changed, 41 insertions(+), 33 deletions(-) create mode 100644 atdb/taskdatabase/templates/dashboard/details_card.html diff --git a/atdb/atdb/settings/base.py b/atdb/atdb/settings/base.py index 9a63aad2..af3b756e 100644 --- a/atdb/atdb/settings/base.py +++ b/atdb/atdb/settings/base.py @@ -186,7 +186,7 @@ LOGOUT_REDIRECT_URL = '/atdb' #STATIC_URL = '/static_atdb/' STATIC_URL = '/atdb/static/' - STATIC_ROOT = os.path.join(BASE_DIR, 'static') +ACTIVE_STATUSSES = ['staged','processing','processed','validated', 'scrubbing','scrubbed','archiving','archived'] diff --git a/atdb/taskdatabase/templates/dashboard/details_card.html b/atdb/taskdatabase/templates/dashboard/details_card.html new file mode 100644 index 00000000..392611ec --- /dev/null +++ b/atdb/taskdatabase/templates/dashboard/details_card.html @@ -0,0 +1,12 @@ + +<div class="card"> + <div class="card-body"> + <h4>Dashboard</h4> + <table class="table table-striped"> + <th>Filter</th><th>Fraction Done</th><th>Resources Used</th> + <tbody> + + </tbody> + </table> + </div> +</div> \ No newline at end of file diff --git a/atdb/taskdatabase/templates/dashboard/index.html b/atdb/taskdatabase/templates/dashboard/index.html index b419ad26..3af6eafa 100644 --- a/atdb/taskdatabase/templates/dashboard/index.html +++ b/atdb/taskdatabase/templates/dashboard/index.html @@ -1,12 +1,13 @@ {% extends 'taskdatabase/base.html' %} - +{% load static %} {% block myBlock %} <div class="container-fluid details-container"> - <h4>Dashboard (under construction)</h4> - + {% include "dashboard/details_card.html" %} </div> +{% include "taskdatabase/modal/modal_script.html" %} +{% include "taskdatabase/modal/modal.html" %} {% endblock %} \ No newline at end of file diff --git a/atdb/taskdatabase/templates/taskdatabase/filter/filter_buttons.html b/atdb/taskdatabase/templates/taskdatabase/filter/filter_buttons.html index 9410b51a..96bd9f0c 100644 --- a/atdb/taskdatabase/templates/taskdatabase/filter/filter_buttons.html +++ b/atdb/taskdatabase/templates/taskdatabase/filter/filter_buttons.html @@ -6,8 +6,10 @@ <tr><td>Click to Filter</td></tr> <tr> <td> - <a href="{% url 'task-set-filter' 'all' %}" class="btn btn-success btn-sm" role="button">ALL</a> - + <a href="{% url 'task-set-filter' 'all' %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-layer-group"></i> All Tasks</a> + <a href="{% url 'task-set-active-filter' %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-layer-group"></i> Active Tasks</a> + <a href="{% url 'task-set-filter' 'failed' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-layer-group"></i> Failed Tasks</a> + <a href="{% url 'task-set-filter' 'defining' %}" class="btn btn-secondary btn-sm" role="button">defining</a> <a href="{% url 'task-set-filter' 'defined' %}" class="btn btn-primary btn-sm" role="button">defined</a> <a href="{% url 'task-set-filter' 'staging' %}" class="btn btn-secondary btn-sm" role="button">staging</a> @@ -20,7 +22,7 @@ <a href="{% url 'task-set-filter' 'archiving' %}" class="btn btn-secondary btn-sm" role="button">archiving</a> <a href="{% url 'task-set-filter' 'archived' %}" class="btn btn-primary btn-sm" role="button">archived</a> <a href="{% url 'task-set-filter' 'finished' %}" class="btn btn-primary btn-sm" role="button">finished</a> - <a href="{% url 'task-set-filter' 'failed' %}" class="btn btn-danger btn-sm" role="button">failed</a> + </td> <td> {% include 'taskdatabase/filter/search.html' %} diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index 11597505..e2bfd220 100644 --- a/atdb/taskdatabase/templates/taskdatabase/index.html +++ b/atdb/taskdatabase/templates/taskdatabase/index.html @@ -28,7 +28,7 @@ <th> <a href="{% url 'sort-tasks' '-workflow' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-up"></i></a> - Workflow + WF <a href="{% url 'sort-tasks' 'workflow' %}" class="btn btn-light btn-sm" role="button"><i class="fas fa-sort-down"></i></a> </th> <th> @@ -85,7 +85,7 @@ {% include 'taskdatabase/pagination.html' %} </div> </div> - <p class="footer"> Version 1.0.0 (9 mar 2021 - 15:00) + <p class="footer"> Version 1.0.0 (11 mar 2021 - 9:00) </div> diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks.html b/atdb/taskdatabase/templates/taskdatabase/tasks.html index 5ef5158c..e5f55f51 100644 --- a/atdb/taskdatabase/templates/taskdatabase/tasks.html +++ b/atdb/taskdatabase/templates/taskdatabase/tasks.html @@ -11,7 +11,7 @@ <a class="open-modal btn btn-primary btn-sm" href="{% url 'workflow-details' task.workflow %}" data-popup-url="{% url 'workflow-details' task.workflow %}" - target="_blank"> {{ task.workflow }} + target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow }} </a></td> </td> <td>{{ task.filter }}</td> @@ -47,23 +47,6 @@ ><i class="fas fa-list"></i> Details </a> - <a class="open-modal btn btn-primary btn-sm" - href="{% url 'show-inputs' task.id %}" - data-popup-url="{% url 'show-inputs' task.id %}" - target="_blank"><i class="fas fa-angle-double-down"></i> - </a> - - <a class="open-modal btn btn-primary btn-sm" - href="{% url 'show-outputs' task.id %}" - data-popup-url="{% url 'show-outputs' task.id %}" - target="_blank"><i class="fas fa-angle-double-up"></i> - </a> - - <a class="open-modal btn btn-primary btn-sm" - href="{% url 'show-metrics' task.id %}" - data-popup-url="{% url 'show-metrics' task.id %}" - target="_blank"><i class="fas fa-clock"></i> - </a> {% endif %} </td> <td> diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html b/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html index ee0e4f6b..90a32040 100644 --- a/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html +++ b/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html @@ -19,7 +19,7 @@ <a class="open-modal btn btn-primary btn-sm" href="{% url 'workflow-details' task.workflow %}" data-popup-url="{% url 'workflow-details' task.workflow %}" - target="_blank"> {{ task.workflow }} + target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow }} </a></td> <tr> <td colspan="2"> diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index 87426cb8..a5d68216 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -55,7 +55,7 @@ urlpatterns = [ path('tasks/set_filter/<filter>', views.TaskSetFilter, name='task-set-filter'), - + path('tasks/set_active_filter', views.TaskSetActiveFilter, name='task-set-active-filter'), path('tasks/<int:pk>/set_status/<new_status>/<page>', views.TaskSetStatusTables2, name = 'task-setstatus'), path('tasks/<int:pk>/hold/<hold_it>/<page>', views.Hold, name='task-hold-resume'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 6cf19246..7860da87 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -20,6 +20,8 @@ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django_tables2 import SingleTableView +from django.conf import settings + from .models import Task, Status, Workflow, LogEntry, Configuration from .tables import TaskTable @@ -167,6 +169,9 @@ class IndexView(ListView): return tasks +def get_searched_tasks_only_status(search, sort): + tasks = Task.objects.filter(status__in=search).order_by(sort) + return tasks def get_searched_tasks(search, sort): tasks = Task.objects.filter( @@ -174,6 +179,7 @@ def get_searched_tasks(search, sort): Q(sas_id__contains=search) | Q(creationTime__icontains=search) | Q(status__icontains=search) | + Q(status__in=search) | Q(project__icontains=search)).order_by(sort) return tasks @@ -468,11 +474,17 @@ def TaskSetStatus(request,pk,new_status,page=0): # redirect to tasks list return redirect('/atdb/?page='+page) - +# set a filter value in the session, used later by the 'get_searched_tasks' mechanism def TaskSetFilter(request,filter): request.session['task_filter'] = filter return redirect('/atdb/?page=1') +# set the defined list of ACTIVE_STATUSSES on the session, used later by the 'get_searched_tasks' mechanism +def TaskSetActiveFilter(request): + request.session['task_filter'] = settings.ACTIVE_STATUSSES + return redirect('/atdb/?page=1') + + @login_required def TaskChangePriority(request,pk,priority_change,page=0): model = Task @@ -494,10 +506,8 @@ def TaskChangePriority(request,pk,priority_change,page=0): def SortTasks(request,sort): - # store the sort field on the session request.session['sort'] = sort - return redirect('/atdb') @login_required @@ -523,7 +533,7 @@ class GetSizeView(generics.ListAPIView): print(status_list) except: # if no 'status__in=' is given, then use the default list - status_list = ['staged','processing','processed','validating','validate', 'ingesting', 'removing', 'removed'] + status_list = settings.ACTIVE_STATUSSES size = algorithms.get_size(status_list) -- GitLab