From a792d3c48f099b3802596e10bf7be270c467c22c Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Tue, 9 Mar 2021 17:28:13 +0100 Subject: [PATCH] working on query page --- atdb/taskdatabase/tables.py | 4 +-- atdb/taskdatabase/templates/query/index.html | 6 ++++- .../query/set_multi_status_panel.html | 25 ++++++++++++++++++ ...ttons.html => status_buttons_per_row.html} | 17 ++++++------ .../templates/taskdatabase/config.html | 26 ++++++++++--------- .../taskdatabase/filter/filter_buttons.html | 4 ++- atdb/taskdatabase/views.py | 15 ++++++----- 7 files changed, 66 insertions(+), 31 deletions(-) create mode 100644 atdb/taskdatabase/templates/query/set_multi_status_panel.html rename atdb/taskdatabase/templates/query/{buttons.html => status_buttons_per_row.html} (51%) diff --git a/atdb/taskdatabase/tables.py b/atdb/taskdatabase/tables.py index 81abe469..1fd01832 100644 --- a/atdb/taskdatabase/tables.py +++ b/atdb/taskdatabase/tables.py @@ -21,13 +21,13 @@ class TaskTable(tables.Table): class Meta: model = Task template_name = "django_tables2/bootstrap4.html" - fields = ("id", "priority", "status", "project", "sas_id", "workflow", "creationtime", "size_to_process","buttons") + fields = ("id", "workflow","filter","priority", "status","project","sas_id","creationtime", "size_to_process","buttons") # columns that need specific rendering status = StatusColumn() creationtime = tables.Column(verbose_name='CreationTime') buttons = tables.TemplateColumn(verbose_name='Actions', - template_name='query/buttons.html', + template_name='query/status_buttons_per_row.html', orderable=False) # orderable not sortable diff --git a/atdb/taskdatabase/templates/query/index.html b/atdb/taskdatabase/templates/query/index.html index ae7a7c81..508b6eaf 100644 --- a/atdb/taskdatabase/templates/query/index.html +++ b/atdb/taskdatabase/templates/query/index.html @@ -9,14 +9,18 @@ {% block myBlock %} <div class="container-fluid details-container"> - <h4>Query</h4> {% if filter %} + <div class="card"> <form action="" method="get" class="form form-inline"> {% bootstrap_form filter.form layout='inline' %} {% bootstrap_button 'filter' %} </form> + </div> {% endif %} + + {% include "query/set_multi_status_panel.html" %} + {% render_table table 'django_tables2/bootstrap4.html' %} </div> diff --git a/atdb/taskdatabase/templates/query/set_multi_status_panel.html b/atdb/taskdatabase/templates/query/set_multi_status_panel.html new file mode 100644 index 00000000..78c5cad9 --- /dev/null +++ b/atdb/taskdatabase/templates/query/set_multi_status_panel.html @@ -0,0 +1,25 @@ + + <div class="row"> + <div class="col-sm"> + <div class="card"> + + <div class="card-body"> + {% if user.is_superuser %} + <p>Click to change Status for all these tasks</p> + <table> + <tr> + <a href="{% url 'task-setstatus' 1 'staged' '1' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> staged</a> + <a href="{% url 'task-setstatus' 1 'processed' '1' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> processed</a> + <a href="{% url 'task-setstatus' 1 'validated' '1' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> validated</a> + <a href="{% url 'task-setstatus' 1 'scrubbed' '1' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> scrubbed</a> + <a href="{% url 'task-setstatus' 1 'archived' '1' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> archived</a> + + <a href="{% url 'task-setstatus' 1 'finished' '1' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> finished</a> + </tr> + </table> + {% endif %} + </div> + </div> + </div> + </div> + diff --git a/atdb/taskdatabase/templates/query/buttons.html b/atdb/taskdatabase/templates/query/status_buttons_per_row.html similarity index 51% rename from atdb/taskdatabase/templates/query/buttons.html rename to atdb/taskdatabase/templates/query/status_buttons_per_row.html index acf3b3d8..211b1026 100644 --- a/atdb/taskdatabase/templates/query/buttons.html +++ b/atdb/taskdatabase/templates/query/status_buttons_per_row.html @@ -1,19 +1,18 @@ {% if record.status == "defining" %} - <a href="{% url 'task-setstatus' record.pk 'defined' '1' %}" class="btn btn-success btn-sm" role="button">Stage</a> + <a href="{% url 'task-setstatus' record.pk 'defined' '1' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-sync-alt"></i> defined</a> {% endif %} {% if record.status != "defining" %} - <a href="{% url 'task-setstatus' record.pk 'defining' '1' %}" class="btn btn-warning btn-sm" role="button">Reset</a> + <a href="{% url 'task-setstatus' record.pk 'defining' '1' %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-undo"></i> defining</a> {% endif %} - <a href="{% url 'task-setstatus' record.pk 'staged' '1' %}" class="btn btn-primary btn-sm" role="button">staged</a> - <a href="{% url 'task-setstatus' record.pk 'processed' '1' %}" class="btn btn-primary btn-sm" role="button">processed</a> - <a href="{% url 'task-setstatus' record.pk 'validated' '1' %}" class="btn btn-primary btn-sm" role="button">validated</a> - <a href="{% url 'task-setstatus' record.pk 'scrub' '1' %}" class="btn btn-warning btn-sm" role="button">scrub</a> - <a href="{% url 'task-setstatus' record.pk 'scrubbed' '1' %}" class="btn btn-primary btn-sm" role="button">scrubbed</a> - <a href="{% url 'task-setstatus' record.pk 'archived' '1' %}" class="btn btn-primary btn-sm" role="button">archived</a> - <a href="{% url 'task-setstatus' record.pk 'finished' '1' %}" class="btn btn-primary btn-sm" role="button">finished</a> + <a href="{% url 'task-setstatus' record.pk 'staged' '1' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-sync-alt"></i> staged</a> + <a href="{% url 'task-setstatus' record.pk 'processed' '1' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-sync-alt"></i> processed</a> + <a href="{% url 'task-setstatus' record.pk 'validated' '1' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-sync-alt"></i> validated</a> + <a href="{% url 'task-setstatus' record.pk 'scrubbed' '1' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-sync-alt"></i> scrubbed</a> + <a href="{% url 'task-setstatus' record.pk 'archived' '1' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-sync-alt"></i> archived</a> + <a href="{% url 'task-setstatus' record.pk 'finished' '1' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-sync-alt"></i> finished</a> {% if record.status == "processed" %} <a href="{% url 'task-setstatus' record.pk 'validated' '1' %}" class="btn btn-success btn-sm" role="button">Validate</a> diff --git a/atdb/taskdatabase/templates/taskdatabase/config.html b/atdb/taskdatabase/templates/taskdatabase/config.html index bfc4d421..03afab8a 100644 --- a/atdb/taskdatabase/templates/taskdatabase/config.html +++ b/atdb/taskdatabase/templates/taskdatabase/config.html @@ -2,18 +2,20 @@ {% load static %} {% block myBlock %} -<div class="container"> -<div class="card"> - <div class="card-body"> - <h3>Configuration </h3> - <table class="table table-striped"> - <tbody> - {{ results | safe }} - </tbody> - </table> - </div> -</div> - <a href="/atdb/admin/taskdatabase/configuration/" class="btn btn-warning btn-sm" target="_blank" role="button"><i class="fas fa-cog"></i> Edit Configuration</a> +<div class="container-fluid details-container"> + <div class="card"> + <div class="card-body"> + <h3>Configuration </h3> + <table class="table table-striped"> + <tbody> + {{ results | safe }} + </tbody> + </table> + </div> + <tr><td> <a href="/atdb/admin/taskdatabase/configuration/" class="btn btn-light btn-sm" target="_blank" role="button"><i class="fas fa-cog"></i> Edit Configuration</a> </td></tr> + + </div> + </div> {% endblock %} diff --git a/atdb/taskdatabase/templates/taskdatabase/filter/filter_buttons.html b/atdb/taskdatabase/templates/taskdatabase/filter/filter_buttons.html index c5257985..9410b51a 100644 --- a/atdb/taskdatabase/templates/taskdatabase/filter/filter_buttons.html +++ b/atdb/taskdatabase/templates/taskdatabase/filter/filter_buttons.html @@ -6,7 +6,9 @@ <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' 'defining' %}" class="btn btn-secondary btn-sm" role="button">defining</a> + <a href="{% url 'task-set-filter' 'all' %}" class="btn btn-success btn-sm" role="button">ALL</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> <a href="{% url 'task-set-filter' 'staged' %}" class="btn btn-primary btn-sm" role="button">staged</a> diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 6cf85728..6cf19246 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -53,16 +53,20 @@ class TaskFilter(filters.FilterSet): 'resume': ['exact'], } -class TaskFilterGUI(filters.FilterSet): +class TaskFilterQueryPage(filters.FilterSet): class Meta: model = Task fields = { - 'priority': ['exact'], + 'workflow__id': ['exact'], + 'filter': ['exact', 'icontains'], + 'priority': ['exact', 'lte', 'gte'], 'status': ['icontains', 'in'], - 'project': ['icontains'], - 'sas_id': ['icontains'], + 'project': ['exact', 'icontains'], + 'sas_id': ['exact', 'icontains'], + 'creationTime': ['icontains'], + 'size_to_process' : ['lte', 'gte'], } @@ -104,8 +108,7 @@ class QueryView(SingleTableMixin, FilterView): table_class = TaskTable model = Task template_name = "query/index.html" - #filterset_class = TaskFilterGUI - filterset_class = TaskFilter + filterset_class = TaskFilterQueryPage # ---------- GUI Views ----------- -- GitLab