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

apply filter button to dashboard

add 'clear filter' button
parent e9f41332
No related branches found
No related tags found
2 merge requests!200apply filter to dashboard,!199apply filter to dashboard
...@@ -472,13 +472,6 @@ def highlight_value(values, value_to_highlight): ...@@ -472,13 +472,6 @@ def highlight_value(values, value_to_highlight):
def construct_tasks_per_workflow_html(request, workflow_results): def construct_tasks_per_workflow_html(request, workflow_results):
try:
query_list_of_ids = request.session['query_list_of_ids']
current_query_params = request.session['current_query_params']
except:
pass
# --- Progress of tasks per active workflow --- # --- Progress of tasks per active workflow ---
results_tasks = "<p>Progress of tasks per workflow</p>" results_tasks = "<p>Progress of tasks per workflow</p>"
...@@ -618,11 +611,13 @@ def construct_logs_per_workflow_html(request, workflow_results): ...@@ -618,11 +611,13 @@ def construct_logs_per_workflow_html(request, workflow_results):
def construct_dashboard_html(request, selection): def construct_dashboard_html(request, selection):
# gather and construct the dashboard based on the requested selection # gather and construct the dashboard based on the requested selection
filtered_tasks = Task.objects.all()
try: try:
if 'applyfilter' in selection:
filtered_tasks_as_list = request.session['filtered_tasks_as_list'] filtered_tasks_as_list = request.session['filtered_tasks_as_list']
filtered_tasks = Task.objects.filter(id__in=filtered_tasks_as_list) filtered_tasks = Task.objects.filter(id__in=filtered_tasks_as_list)
except: except:
filtered_tasks = Task.objects.all() pass
# --- Progress of tasks per active workflow --- # --- Progress of tasks per active workflow ---
workflow_results = aggregate_resources_tasks(request, selection, filtered_tasks) workflow_results = aggregate_resources_tasks(request, selection, filtered_tasks)
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
data-onstyle="warning" data-onstyle="warning"
data-offstyle="primary" data-offstyle="primary"
data-style data-style
{% if not 'active' in toggle_selection %} checked {% endif %} {% if not 'active' in selection %} checked {% endif %}
>&nbsp; >&nbsp;
<input type="checkbox" <input type="checkbox"
...@@ -24,6 +24,17 @@ ...@@ -24,6 +24,17 @@
{% if 'resources' in selection %} checked {% endif %} {% if 'resources' in selection %} checked {% endif %}
>&nbsp; >&nbsp;
<input type="checkbox"
id = "apply_filter"
name="apply_filter"
data-on="Latest Filter Applied"
data-off="No Filter Applied"
data-toggle="toggle"
data-onstyle="primary"
data-offstyle="secondary"
data-style
{% if 'applyfilter' in selection %} checked {% endif %}
>&nbsp;
<script> <script>
$(function() { $(function() {
...@@ -58,4 +69,21 @@ ...@@ -58,4 +69,21 @@
}) })
}) })
</script> </script>
<script>
$(function() {
$('#apply_filter').change(function() {
let url = location.href
if ($(this).prop('checked')) {
url = url.replace('nofilter','applyfilter');
location.assign(url);
} else {
url = url.replace('applyfilter','nofilter');
location.assign(url);
}
})
})
</script>
</table> </table>
\ No newline at end of file
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<li><a class="nav-link" href="{% url 'quality' %}">Quality</a></li> <li><a class="nav-link" href="{% url 'quality' %}">Quality</a></li>
{% endif %} {% endif %}
<li><a class="nav-link" href="{% url 'dashboard' 'active_nores' %}">Dashboard</a></li> <li><a class="nav-link" href="{% url 'dashboard' 'active_nores_nofilter' %}">Dashboard</a></li>
<li><a class="nav-link" href="{% url 'query' %}">Filter</a></li> <li><a class="nav-link" href="{% url 'query' %}">Filter</a></li>
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
{% include 'taskdatabase/pagination.html' %} {% include 'taskdatabase/pagination.html' %}
</div> </div>
</div> </div>
<p class="footer"> Version 1.0.0 (7 feb 2021 - 14:00) <p class="footer"> Version 1.0.0 (7 feb 2021 - 15:00)
</div> </div>
......
...@@ -178,7 +178,6 @@ class QueryView(SingleTableMixin, FilterView): ...@@ -178,7 +178,6 @@ class QueryView(SingleTableMixin, FilterView):
# store on the session # store on the session
self.request.session['filtered_tasks_as_list'] = filtered_tasks_as_list self.request.session['filtered_tasks_as_list'] = filtered_tasks_as_list
self.request.session['query_list_of_ids'] = query_list_of_ids
return self.object_list return self.object_list
...@@ -488,7 +487,7 @@ def ShowDashboard(request, selection): ...@@ -488,7 +487,7 @@ def ShowDashboard(request, selection):
return render(request, "dashboard/dashboard.html", return render(request, "dashboard/dashboard.html",
{'results_tasks': results_tasks, {'results_tasks': results_tasks,
'results_logs': results_logs, 'results_logs': results_logs,
'toggle_selection': selection}) 'selection': selection})
def WorkflowDetails(request, id): def WorkflowDetails(request, id):
...@@ -812,7 +811,6 @@ def TaskClearFilter(request): ...@@ -812,7 +811,6 @@ def TaskClearFilter(request):
request.session['task_filter'] = 'all' request.session['task_filter'] = 'all'
request.session['task_onhold_filter'] = None request.session['task_onhold_filter'] = None
request.session['filtered_tasks_as_list'] = None request.session['filtered_tasks_as_list'] = None
request.session['query_list_of_ids'] = None
request.session['search_box'] = '' request.session['search_box'] = ''
return redirect('/atdb/?page=1') return redirect('/atdb/?page=1')
...@@ -881,13 +879,13 @@ def TaskSetStatusTables2(request, pk, new_status, query_params): ...@@ -881,13 +879,13 @@ def TaskSetStatusTables2(request, pk, new_status, query_params):
@login_required @login_required
def TaskMultiStatus(request, new_status, query_params): def TaskMultiStatus(request, new_status, query_params):
# get the list of id's from the session # get the list of id's from the session
query_list_of_ids = request.session['query_list_of_ids'] filtered_tasks_as_list = request.session['filtered_tasks_as_list']
count = len(query_list_of_ids) count = len(filtered_tasks_as_list)
if request.method == "POST": if request.method == "POST":
for id in query_list_of_ids: for id in filtered_tasks_as_list:
task = Task.objects.get(id=id[0]) task = Task.objects.get(id=id)
task.new_status = new_status task.new_status = new_status
task.save() task.save()
...@@ -905,13 +903,13 @@ def TaskMultiStatus(request, new_status, query_params): ...@@ -905,13 +903,13 @@ def TaskMultiStatus(request, new_status, query_params):
@login_required @login_required
def TaskMultiHold(request, onhold, query_params): def TaskMultiHold(request, onhold, query_params):
# get the list of id's from the session # get the list of id's from the session
query_list_of_ids = request.session['query_list_of_ids'] filtered_tasks_as_list = request.session['filtered_tasks_as_list']
count = len(query_list_of_ids) count = len(filtered_tasks_as_list)
if request.method == "POST": if request.method == "POST":
for id in query_list_of_ids: for id in filtered_tasks_as_list:
task = Task.objects.get(id=id[0]) task = Task.objects.get(id=id)
task.resume = (onhold == 'resume') task.resume = (onhold == 'resume')
task.save() task.save()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment