diff --git a/atdb/atdb/static/taskdatabase/style.css b/atdb/atdb/static/taskdatabase/style.css index d466ffd86fe1b5f1aa3852578faad1bb3bca78b6..f202fa5b32346138c21c0403786f0e31791d3adf 100644 --- a/atdb/atdb/static/taskdatabase/style.css +++ b/atdb/atdb/static/taskdatabase/style.css @@ -17,7 +17,7 @@ TD { background-color: lemonchiffon; } -.error,.failed,.staging_failed,.processed_failed { +.error,.failed,.staging_failed,.processed_failed,.scrubbed_failed { color: red; font-weight: bold; } diff --git a/atdb/docs/ATDB-LDV GUI.png b/atdb/docs/ATDB-LDV GUI.png new file mode 100644 index 0000000000000000000000000000000000000000..ccb21aab25225cf9a34ec2f64fc6b4b04c77acf1 Binary files /dev/null and b/atdb/docs/ATDB-LDV GUI.png differ diff --git a/atdb/taskdatabase/static/taskdatabase/style.css b/atdb/taskdatabase/static/taskdatabase/style.css index 6ad92e4fdfda48abc4d8d69fd9f55fdd4b643b68..39be572d6f6939ed89678e2d2a6201910597e0df 100644 --- a/atdb/taskdatabase/static/taskdatabase/style.css +++ b/atdb/taskdatabase/static/taskdatabase/style.css @@ -17,7 +17,7 @@ TD { background-color: lemonchiffon; } -.error,.failed,.staging_failed,.processed_failed { +.error,.failed,.staging_failed,.processed_failed,.scrubbed_failed { color: red; font-weight: bold; } diff --git a/atdb/taskdatabase/templates/query/confirm_multi_change.html b/atdb/taskdatabase/templates/query/confirm_multi_change.html new file mode 100644 index 0000000000000000000000000000000000000000..2c61e017b4f09d8efb0a7defce1d4d70d4305194 --- /dev/null +++ b/atdb/taskdatabase/templates/query/confirm_multi_change.html @@ -0,0 +1,24 @@ +{% extends 'taskdatabase/base.html' %} + +{% block myBlock %} +<div class="container-fluid details-container"> + + + <div class="card"> + <div class="card-body"> + + <form action="./{{ new_value }}" method="POST">{% csrf_token %} + <div class="text-center"> + <h4>Are you sure you want to set {{ count }} tasks to {{ new_value }}?</h4> + + <p> + <button class="btn btn-success btn-sm" type="submit"><i class="fas fa-check"></i> OK</button> + <a href="{% url 'query' %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-times-circle"></i> Cancel</a>  + </p> + </div> + </form> + + </div> + </div> +</div> +{% endblock %} \ 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 d6daa63bf2609e6d1cdbda50f22b98b2ed6df5d6..5a3a8a3925ace12916b764a666e533db1694078d 100644 --- a/atdb/taskdatabase/templates/query/set_multi_status_panel.html +++ b/atdb/taskdatabase/templates/query/set_multi_status_panel.html @@ -11,7 +11,7 @@ <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' '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/modal/modal.html b/atdb/taskdatabase/templates/taskdatabase/modal/modal.html index ea4dc5ff5aba0164c268930d68d98be44a7871c0..27a23412e2abe85e7beb3c379cdc9b83114af5ac 100644 --- a/atdb/taskdatabase/templates/taskdatabase/modal/modal.html +++ b/atdb/taskdatabase/templates/taskdatabase/modal/modal.html @@ -4,8 +4,7 @@ <div class="modal-content"> <div class="modal-body"></div> <div class="modal-footer"> - <button type="button" class="btn btn-info" data-dismiss="modal">Close - </button> + <button type="button" class="btn btn-info" data-dismiss="modal">Close</button> </div> </div> </div> diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index 750c72920bf95ab3115f233ac178a94fd64d6301..074841362a6208514fbb1000057b95a6ce1a7676 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -63,7 +63,7 @@ urlpatterns = [ path('tasks/set_active_filter', views.TaskSetActiveFilter, name='task-set-active-filter'), 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_status_multi/<new_status>', views.TaskMultiStatus, 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'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 2fc8179ce5c7b4d138c1319195eebf58df4427d7..55ee183c9dcf698cbd567d13d27fd39375c4994c 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -61,9 +61,9 @@ class TaskFilterQueryPage(filters.FilterSet): model = Task fields = { - 'id': ['exact', 'lte', 'gte'], + 'id': ['exact', 'gte', 'lte'], 'workflow__id': ['exact'], - 'priority': ['exact', 'lte', 'gte'], + 'priority': ['exact', 'gte', 'lte'], 'status': ['icontains', 'in'], 'project': ['exact', 'icontains'], 'sas_id': ['exact', 'icontains'], @@ -489,6 +489,7 @@ def TaskSetFilter(request,filter): # set the defined list of ACTIVE_STATUSSES on the session, used later by the 'get_searched_tasks' mechanism def TaskSetActiveFilter(request): request.session['task_filter'] = settings.ACTIVE_STATUSSES + request.session['task_onhold_filter'] = None return redirect('/atdb/?page=1') def TaskSetOnHoldFilter(request, onhold): @@ -531,32 +532,38 @@ def TaskSetStatusTables2(request,pk,new_status,page): return redirect('/atdb/query/?page='+page) @login_required -def TaskSetStatusMulti(request, new_status): - # read the current querylist from the session - +def TaskMultiStatus(request, new_status): # 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) - for id in query_list_of_ids: - task = Task.objects.get(id=id[0]) - task.new_status = new_status - task.save() - return redirect('/atdb/query') + if request.method == "POST": + + for id in query_list_of_ids: + task = Task.objects.get(id=id[0]) + task.new_status = new_status + task.save() + return redirect('/atdb/query') + + return render(request, "query/confirm_multi_change.html",{'new_value': new_status, 'count' : count}) @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'] + count = len(query_list_of_ids) - for id in query_list_of_ids: - task = Task.objects.get(id=id[0]) - task.resume = (onhold == 'resume') - task.save() + if request.method == "POST": + + for id in query_list_of_ids: + task = Task.objects.get(id=id[0]) + task.resume = (onhold == 'resume') + task.save() + + return redirect('/atdb/query') - return redirect('/atdb/query') + return render(request, "query/confirm_multi_change.html",{'new_value': onhold, 'count' : count}) # /atdb/get_size?status__in=defined,staged