diff --git a/atdb/taskdatabase/services/algorithms.py b/atdb/taskdatabase/services/algorithms.py index 0489a857b0231f25120047d52bd4e0cb33f2840f..3db3fa8364398018e841ed568b357db120eceac3 100644 --- a/atdb/taskdatabase/services/algorithms.py +++ b/atdb/taskdatabase/services/algorithms.py @@ -472,13 +472,6 @@ def highlight_value(values, value_to_highlight): 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 --- results_tasks = "<p>Progress of tasks per workflow</p>" @@ -618,11 +611,13 @@ def construct_logs_per_workflow_html(request, workflow_results): def construct_dashboard_html(request, selection): # gather and construct the dashboard based on the requested selection + filtered_tasks = Task.objects.all() try: - filtered_tasks_as_list = request.session['filtered_tasks_as_list'] - filtered_tasks = Task.objects.filter(id__in=filtered_tasks_as_list) + if 'applyfilter' in selection: + filtered_tasks_as_list = request.session['filtered_tasks_as_list'] + filtered_tasks = Task.objects.filter(id__in=filtered_tasks_as_list) except: - filtered_tasks = Task.objects.all() + pass # --- Progress of tasks per active workflow --- workflow_results = aggregate_resources_tasks(request, selection, filtered_tasks) diff --git a/atdb/taskdatabase/templates/dashboard/toggles.html b/atdb/taskdatabase/templates/dashboard/toggles.html index 1cdf43c17e07c3c83bf1a00463670c366b6c34fc..07829575d3b096c6714a301d9b1e8fa97629ac29 100644 --- a/atdb/taskdatabase/templates/dashboard/toggles.html +++ b/atdb/taskdatabase/templates/dashboard/toggles.html @@ -9,7 +9,7 @@ data-onstyle="warning" data-offstyle="primary" data-style - {% if not 'active' in toggle_selection %} checked {% endif %} + {% if not 'active' in selection %} checked {% endif %} > <input type="checkbox" @@ -24,6 +24,17 @@ {% if 'resources' in selection %} checked {% endif %} > + <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 %} + > <script> $(function() { @@ -58,4 +69,21 @@ }) }) </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> \ No newline at end of file diff --git a/atdb/taskdatabase/templates/taskdatabase/base.html b/atdb/taskdatabase/templates/taskdatabase/base.html index 1ca7e6141cdf3d1ff27a875b5898b3927b8cb39b..2e7799d65a1d4aa182147a006f744286e942ff9f 100644 --- a/atdb/taskdatabase/templates/taskdatabase/base.html +++ b/atdb/taskdatabase/templates/taskdatabase/base.html @@ -52,7 +52,7 @@ <li><a class="nav-link" href="{% url 'quality' %}">Quality</a></li> {% 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> diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index 1abdb6fea53d5e3d95a5c0bcdcde826110db5c90..1187bbc5b849a3ecfc487c03bf39d48b8177923f 100644 --- a/atdb/taskdatabase/templates/taskdatabase/index.html +++ b/atdb/taskdatabase/templates/taskdatabase/index.html @@ -34,7 +34,7 @@ {% include 'taskdatabase/pagination.html' %} </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> diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 203c6361023932262d419156100b92d7fa3906b6..2b06e3b23d094a6bffabc57545efe2e35f36ddc1 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -178,7 +178,6 @@ class QueryView(SingleTableMixin, FilterView): # store on the session 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 @@ -488,7 +487,7 @@ def ShowDashboard(request, selection): return render(request, "dashboard/dashboard.html", {'results_tasks': results_tasks, 'results_logs': results_logs, - 'toggle_selection': selection}) + 'selection': selection}) def WorkflowDetails(request, id): @@ -812,7 +811,6 @@ def TaskClearFilter(request): request.session['task_filter'] = 'all' request.session['task_onhold_filter'] = None request.session['filtered_tasks_as_list'] = None - request.session['query_list_of_ids'] = None request.session['search_box'] = '' return redirect('/atdb/?page=1') @@ -881,13 +879,13 @@ def TaskSetStatusTables2(request, pk, new_status, query_params): @login_required def TaskMultiStatus(request, new_status, query_params): # get the list of id's from the session - query_list_of_ids = request.session['query_list_of_ids'] - count = len(query_list_of_ids) + filtered_tasks_as_list = request.session['filtered_tasks_as_list'] + count = len(filtered_tasks_as_list) if request.method == "POST": - for id in query_list_of_ids: - task = Task.objects.get(id=id[0]) + for id in filtered_tasks_as_list: + task = Task.objects.get(id=id) task.new_status = new_status task.save() @@ -905,13 +903,13 @@ def TaskMultiStatus(request, new_status, query_params): @login_required def TaskMultiHold(request, onhold, query_params): # get the list of id's from the session - query_list_of_ids = request.session['query_list_of_ids'] - count = len(query_list_of_ids) + filtered_tasks_as_list = request.session['filtered_tasks_as_list'] + count = len(filtered_tasks_as_list) if request.method == "POST": - for id in query_list_of_ids: - task = Task.objects.get(id=id[0]) + for id in filtered_tasks_as_list: + task = Task.objects.get(id=id) task.resume = (onhold == 'resume') task.save()