diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index 653bc098cf851e91b2ac8163b96cf0c9635f662d..8e305b9cd579081570fb99f94ec72c6d6b2080f2 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -25,7 +25,7 @@ class Task(models.Model): new_status = models.CharField(max_length=50, default="defining", null=True) status = models.CharField(db_index=True, default="unknown", max_length=50,blank=True, null=True) - resume = models.BooleanField(default=True) + resume = models.BooleanField(verbose_name="Resume", default=True) creationTime = models.DateTimeField(verbose_name="CreationTime",default=datetime.utcnow, blank=True) priority = models.IntegerField(default=100, null=True) @@ -34,7 +34,7 @@ class Task(models.Model): # LOFAR properties project = models.CharField(max_length=100, blank=True, null=True, default="unknown") - sas_id = models.CharField(max_length=15, blank=True, null=True) + sas_id = models.CharField(verbose_name="SAS_ID",max_length=15, blank=True, null=True) inputs = models.JSONField(null=True, blank=True) outputs = models.JSONField(null=True, blank=True) metrics = models.JSONField(null=True, blank=True) diff --git a/atdb/taskdatabase/tables.py b/atdb/taskdatabase/tables.py index 8ef57446741e73c37243a6bfb50f8eff4731b7e4..b096adb17e5c57ed1940a617d3b8f4a153bad6eb 100644 --- a/atdb/taskdatabase/tables.py +++ b/atdb/taskdatabase/tables.py @@ -2,24 +2,6 @@ import django_tables2 as tables from .models import Task -# render the StatusColumn based on the style.css -class IDColumn(tables.Column): - attrs = { - "td": { - "class": lambda record: record.status - }, - "tr": { - "class": lambda record: record.status - }, - "a": { - "href" : lambda record: record.get_absolute_url, - "target": "_blank" - } - } - def render(self, record): - link = '<a href="{{ record.get_absolute_url }}" target="_blank">{{ record.id }} </a>' - return "{}".format(link) - # render the StatusColumn based on the style.css class StatusColumn(tables.Column): attrs = { @@ -33,19 +15,21 @@ class StatusColumn(tables.Column): def render(self, record): return "{}".format(record.status) +# render the StatusColumn based on the style.css +class ResumeColumn(tables.BooleanColumn): + def render(self, record): + return record.resume class TaskTable(tables.Table): class Meta: model = Task template_name = "django_tables2/bootstrap4.html" - fields = ("id", "workflow","filter","priority","status","project","sas_id","actions","buttons") + fields = ("id", "workflow","filter","priority","status","project","sas_id","resume","actions","buttons") # columns that need specific rendering - # id = IDColumn() (too complicated, finish later.. if time status = StatusColumn() - - #creationtime = tables.Column(verbose_name='CreationTime') + #resume = ResumeColumn() actions = tables.TemplateColumn(verbose_name='Details', template_name='query/action_buttons_per_row.html', diff --git a/atdb/taskdatabase/templates/query/index.html b/atdb/taskdatabase/templates/query/index.html index 508b6eaf1c266f215e127a79d186ed3565965a70..8bff93a4252480b291915f1dc3add8f05482086d 100644 --- a/atdb/taskdatabase/templates/query/index.html +++ b/atdb/taskdatabase/templates/query/index.html @@ -14,7 +14,8 @@ <div class="card"> <form action="" method="get" class="form form-inline"> {% bootstrap_form filter.form layout='inline' %} - {% bootstrap_button 'filter' %} + <button type="submit" class="btn-success btn-sm" title="Filter"><i class="fas fa-filter"></i> Filter</button> + </form> </div> {% endif %} diff --git a/atdb/taskdatabase/templates/query/query.html b/atdb/taskdatabase/templates/query/query.html index e2455f67949d12c8f449d6a148511ce5bf795560..3bc2ad1d90fec179f8e31b00fb8eb220bdcb08a8 100644 --- a/atdb/taskdatabase/templates/query/query.html +++ b/atdb/taskdatabase/templates/query/query.html @@ -2,7 +2,7 @@ <!doctype html> <html> <head> - <title>ATDB Tables2</title> + <title>Query</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" /> </head> <body> diff --git a/atdb/taskdatabase/templates/query/set_multi_status_panel.html b/atdb/taskdatabase/templates/query/set_multi_status_panel.html index 5a3a8a3925ace12916b764a666e533db1694078d..2d586db24ee973fb232cea307ff70b60e8fbfa50 100644 --- a/atdb/taskdatabase/templates/query/set_multi_status_panel.html +++ b/atdb/taskdatabase/templates/query/set_multi_status_panel.html @@ -5,13 +5,12 @@ <div class="card-body"> {% if user.is_superuser %} - <p>Click to change Status for all these tasks</p> + <p>Click to 'multi change' Status for all these tasks</p> <table> <tr> <a href="{% url 'task-multi-hold' 'hold' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-pause"></i> hold</a> <a href="{% url 'task-multi-hold' 'resume' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-play"></i> start</a> - <a href="{% url 'task-multi-setstatus' 'defining' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> defining</a> <a href="{% url 'task-multi-setstatus' 'defined' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> defined</a> <a href="{% url 'task-multi-setstatus' 'staged' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> staged</a> <a href="{% url 'task-multi-setstatus' 'processed' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> processed</a> diff --git a/atdb/taskdatabase/templates/query/status_buttons_per_row.html b/atdb/taskdatabase/templates/query/status_buttons_per_row.html index c0d9286d034deced1b90bd2cbb3a333490bad3db..f5541daf11ddd4045bac62565437761fcb3c9f9e 100644 --- a/atdb/taskdatabase/templates/query/status_buttons_per_row.html +++ b/atdb/taskdatabase/templates/query/status_buttons_per_row.html @@ -1,6 +1,5 @@ {% if user.is_staff %} - <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> <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> <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 'fetched' '1' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-sync-alt"></i> fetched</a> diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index 659e29d30c7caa29fd3d1d08799c78efd04c5e77..f4f48751120de930cca0a4362aadf22bcd2e31e6 100644 --- a/atdb/taskdatabase/templates/taskdatabase/index.html +++ b/atdb/taskdatabase/templates/taskdatabase/index.html @@ -80,7 +80,7 @@ {% include 'taskdatabase/pagination.html' %} </div> </div> - <p class="footer"> Version 1.0.0 (23 apr 2021 - 9:00) + <p class="footer"> Version 1.0.0 (26 apr 2021 - 9:00) </div> diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 57d6d022f4cbe4b3a975dd486729286c648ada04..41532b78a38c503cbf443876aee0bb3272b38ec1 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -9,6 +9,8 @@ from django.contrib import messages from rest_framework import generics, pagination from rest_framework.response import Response + +import django_filters from django_filters import rest_framework as filters from django_filters.views import FilterView from django_tables2.views import SingleTableMixin @@ -56,6 +58,7 @@ class TaskFilter(filters.FilterSet): } class TaskFilterQueryPage(filters.FilterSet): + resume = django_filters.BooleanFilter(lookup_expr='exact', label='resuming') class Meta: model = Task @@ -68,6 +71,7 @@ class TaskFilterQueryPage(filters.FilterSet): 'status': ['icontains', 'in'], 'project': ['exact', 'icontains'], 'sas_id': ['exact', 'icontains'], + #'resume': ['exact'], }