Skip to content
Snippets Groups Projects
Commit 67f54e22 authored by Nico Vermaas's avatar Nico Vermaas
Browse files

Query Page:

add 'resume' filter (hold/start)
removed 'defining' filters
added nicer 'Filter' button
parent 370efe79
No related branches found
No related tags found
3 merge requests!143Query Page:,!127Query Page:,!126Query Page:
......@@ -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)
......
......@@ -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',
......
......@@ -14,7 +14,8 @@
<div class="card">
<form action="" method="get" class="form form-inline">
{% bootstrap_form filter.form layout='inline' %}
{% bootstrap_button 'filter' %}
&nbsp;<button type="submit" class="btn-success btn-sm" title="Filter"><i class="fas fa-filter"></i> Filter</button>
</form>
</div>
{% endif %}
......
......@@ -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>
......
......@@ -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>&nbsp;
<a href="{% url 'task-multi-hold' 'resume' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-play"></i> start</a>&nbsp;
<a href="{% url 'task-multi-setstatus' 'defining' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> defining</a>&nbsp;
<a href="{% url 'task-multi-setstatus' 'defined' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> defined</a>&nbsp;
<a href="{% url 'task-multi-setstatus' 'staged' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> staged</a>&nbsp;
<a href="{% url 'task-multi-setstatus' 'processed' %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-sync-alt"></i> processed</a>&nbsp;
......
{% 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>&nbsp;
<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>&nbsp;
......
......@@ -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>
......
......@@ -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'],
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment