From b087a4d1424fae180b5bf78d2d250666d6fdc3f7 Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Thu, 1 Apr 2021 14:21:02 +0200 Subject: [PATCH] adding multi hold/resume functionality in query --- .../query/action_buttons_per_row.html | 4 ++-- .../query/set_multi_status_panel.html | 5 +++- .../templates/taskdatabase/index.html | 2 +- atdb/taskdatabase/urls.py | 3 ++- atdb/taskdatabase/views.py | 23 ++++++++++++++----- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/atdb/taskdatabase/templates/query/action_buttons_per_row.html b/atdb/taskdatabase/templates/query/action_buttons_per_row.html index 03e74f55..6fae0ffc 100644 --- a/atdb/taskdatabase/templates/query/action_buttons_per_row.html +++ b/atdb/taskdatabase/templates/query/action_buttons_per_row.html @@ -1,9 +1,9 @@ <a href="{% url 'task-details' record.pk 0 %}" class="btn btn-primary btn-sm" role="button"><i class="fas fa-list"></i> Details</a> {% if record.resume %} - <a href="{% url 'task-hold-resume' record.pk 'hold' 0 %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-pause"></i> hold</a> + <a href="{% url 'task-hold-resume' record.pk 'hold' %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-pause"></i> hold</a> {% endif %} {% if not record.resume %} - <a href="{% url 'task-hold-resume' record.pk 'resume' 0 %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-play"></i> start</a> + <a href="{% url 'task-hold-resume' record.pk 'resume' %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-play"></i> start</a> {% endif %} \ No newline at end of file diff --git a/atdb/taskdatabase/templates/query/set_multi_status_panel.html b/atdb/taskdatabase/templates/query/set_multi_status_panel.html index 00cb2f62..d6daa63b 100644 --- a/atdb/taskdatabase/templates/query/set_multi_status_panel.html +++ b/atdb/taskdatabase/templates/query/set_multi_status_panel.html @@ -8,7 +8,10 @@ <p>Click to change Status for all these tasks</p> <table> <tr> - <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-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/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index 95f65c94..a3413b7f 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 (1 apr 2021 - 12:00) + <p class="footer"> Version 1.0.0 (1 apr 2021 - 14:00) </div> diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index 73ac3e58..e7474e03 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -64,7 +64,8 @@ urlpatterns = [ path('tasks/task-set-onhold-filter/<onhold>', views.TaskSetOnHoldFilter, name='task-set-onhold-filter'), path('tasks/<int:pk>/set_status/<new_status>/<page>', views.TaskSetStatusTables2, name = 'task-setstatus'), path('tasks/set_status_multi/<new_status>', views.TaskSetStatusMulti, name='task-multi-setstatus'), - + path('tasks/set_multi_hold/<onhold>', views.TaskMultiHold, name='task-multi-hold'), path('tasks/<int:pk>/hold/<hold_it>/<page>', views.Hold, name='task-hold-resume'), + path('tasks/<int:pk>/hold/<hold_it>', views.Hold, name='task-hold-resume'), ] \ No newline at end of file diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index b9757b70..ebfb1e47 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -8,7 +8,6 @@ from django.contrib.auth.decorators import login_required from django.views.generic import ListView from django.contrib import messages -from django.core.cache import cache from rest_framework import generics, pagination from rest_framework.response import Response @@ -453,7 +452,7 @@ class JobDetailsViewAPI(generics.RetrieveUpdateDestroyAPIView): # set task status to 'new_status' - called from the GUI @login_required -def Hold(request,pk,hold_it,page): +def Hold(request,pk,hold_it,page=0): model = Task task = Task.objects.get(pk=pk) task.resume = (hold_it == 'resume') @@ -537,10 +536,6 @@ def TaskSetStatusTables2(request,pk,new_status,page): def TaskSetStatusMulti(request, new_status): # read the current querylist from the session - # yikes, this doesn't work if 2 users are simultaneously logged in - # query_list = cache.get('query_list') - # cache.delete('query_list') - # get the list of id's from the session query_list_of_ids = request.session['query_list_of_ids'] @@ -550,6 +545,22 @@ def TaskSetStatusMulti(request, new_status): task.save() return redirect('/atdb/query') + +@login_required +def TaskMultiHold(request, onhold): + # read the current querylist from the session + + # get the list of id's from the session + query_list_of_ids = request.session['query_list_of_ids'] + + for id in query_list_of_ids: + task = Task.objects.get(id=id[0]) + task.resume = (onhold == 'resume') + task.save() + + return redirect('/atdb/query') + + # /atdb/get_size?status__in=defined,staged class GetSizeView(generics.ListAPIView): queryset = Task.objects.all() -- GitLab