From 9121d737c226a083d95c4bb1203ea517e152ad9d Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Fri, 1 Apr 2022 17:38:40 +0200 Subject: [PATCH] Validation Page --- atdb/taskdatabase/models.py | 3 +- .../taskdatabase/failures/failures_page.html | 4 +- .../taskdatabase/failures/tasks_failures.html | 39 +++++++++++++++++-- .../templates/taskdatabase/index.html | 2 +- .../taskdatabase/quality/tasks_quality.html | 4 +- .../validation/tasks_validation.html | 2 +- .../validation/tasks_validation_headers.html | 1 + .../validation/validation_page.html | 4 +- atdb/taskdatabase/urls.py | 1 + atdb/taskdatabase/views.py | 28 +++++++++---- 10 files changed, 68 insertions(+), 20 deletions(-) diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index ddf73715..857c36fc 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -43,7 +43,8 @@ def convert_quality_to_shortlist_for_template(task): list.append(str(task.quality_json['uv-coverage'])) list.append(str(task.quality_json['sensitivity'])) list.append(str(task.quality_json['observing-conditions'])) - + #url = '{ <a href="' + task.quality_json['plots'][0]["path"] + '">Diagnostic Plots</a> }' + list.append("Diagnostic Plots") except Exception as err: pass diff --git a/atdb/taskdatabase/templates/taskdatabase/failures/failures_page.html b/atdb/taskdatabase/templates/taskdatabase/failures/failures_page.html index 6f67507a..fa53f4e8 100644 --- a/atdb/taskdatabase/templates/taskdatabase/failures/failures_page.html +++ b/atdb/taskdatabase/templates/taskdatabase/failures/failures_page.html @@ -10,8 +10,8 @@ <div class="col-8"> <h3>Failures</h3> These are all the tasks that failed. - Click 'Retry' to restart a specific step in the workflow. - <a class="nav-link" href="{% url 'diagram' %}">See workflow diagram</a> + Click 'Retry' to restart the this step in the workflow (see 'Diagram' in top menu). + <td>{% include 'taskdatabase/filter/search.html' %}</td> <hr> </div> </div> diff --git a/atdb/taskdatabase/templates/taskdatabase/failures/tasks_failures.html b/atdb/taskdatabase/templates/taskdatabase/failures/tasks_failures.html index 796d6e52..817f4405 100644 --- a/atdb/taskdatabase/templates/taskdatabase/failures/tasks_failures.html +++ b/atdb/taskdatabase/templates/taskdatabase/failures/tasks_failures.html @@ -3,7 +3,7 @@ {% if task.status != "removed_invisible" %} <div class="row"> - <tr class="{{ task.status }}"> + <tr> <td> <a href="{{ task.get_absolute_url }}" target="_blank">{{ task.id }} </a> @@ -16,6 +16,13 @@ ><i class="fas fa-list"></i> Details </a> {% endif %} + {% if task.has_quality %} + <a class="open-modal btn btn-primary btn-sm" + href="{% url 'task-quality' task.id my_tasks.number %}" + data-popup-url="{% url 'task-quality' task.id my_tasks.number %}" + ><i class="fas fa-balance-scale-right"></i> Quality + </a> + {% endif %} </td> {% if task.resume %} @@ -29,9 +36,35 @@ <td>{{ task.sas_id }}</td> <td>{{ task.filter }} </td> - {% if task.status == "processed_failed" %} + + {% if task.status == "staged_failed" or task.status == "staging_failed" %} + <td> + <a href="{% url 'task-retry-view' task.pk 'defined' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><b><i class="fas fa-sync-alt"></i> Retry</b></a> + </td> + {% endif %} + {% if task.status == "fetched_failed" or task.status == "fetching_failed" %} + <td> + <a href="{% url 'task-retry-view' task.pk 'staged' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><b><i class="fas fa-sync-alt"></i> Retry</b></a> + </td> + {% endif %} + {% if task.status == "processed_failed" or task.status == "processing_failed" %} + <td> + <a href="{% url 'task-retry-view' task.pk 'fetched' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><b><i class="fas fa-sync-alt"></i> Retry</b></a> + </td> + {% endif %} + {% if task.status == "stored_failed" or task.status == "storing_failed" %} + <td> + <a href="{% url 'task-retry-view' task.pk 'processed' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><b><i class="fas fa-sync-alt"></i> Retry</b></a> + </td> + {% endif %} + {% if task.status == "scrubbed_failed" or task.status == "scrubbing_failed" %} + <td> + <a href="{% url 'task-retry-view' task.pk 'validated' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><b><i class="fas fa-sync-alt"></i> Retry</b></a> + </td> + {% endif %} + {% if task.status == "archived_failed" or task.status == "archiving_failed" %} <td> - <a href="{% url 'task-setstatus-view' task.pk 'fetched' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><b><i class="fas fa-sync-alt"></i> Retry</b></a> + <a href="{% url 'task-retry-view' task.pk 'scrubbed' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><b><i class="fas fa-sync-alt"></i> Retry</b></a> </td> {% endif %} <td> diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index acc10b22..8e748528 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 (1 apr 2021 - 15:00) + <p class="footer"> Version 1.0.0 (1 apr 2021 - 16:00) </div> diff --git a/atdb/taskdatabase/templates/taskdatabase/quality/tasks_quality.html b/atdb/taskdatabase/templates/taskdatabase/quality/tasks_quality.html index e665307f..77cf0330 100644 --- a/atdb/taskdatabase/templates/taskdatabase/quality/tasks_quality.html +++ b/atdb/taskdatabase/templates/taskdatabase/quality/tasks_quality.html @@ -16,13 +16,13 @@ ><i class="fas fa-list"></i> Details </a> {% endif %} - {% if task.has_quality %} + {% if task.has_quality %} <a class="open-modal btn btn-primary btn-sm" href="{% url 'task-quality' task.id my_tasks.number %}" data-popup-url="{% url 'task-quality' task.id my_tasks.number %}" ><i class="fas fa-balance-scale-right"></i> Quality </a> - {% endif %} + {% endif %} </td> {% if task.resume %} diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html index 8de0b96f..d49a67de 100644 --- a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html +++ b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html @@ -35,7 +35,7 @@ <td>{{value}}</td> {% endfor %} {% else %} - <td>-</td><td>-</td><td>-</td> + <td>-</td><td>-</td><td>-</td><td>-</td> {% endif %} <td>{{ task.quality|default_if_none:"-" }}</td> diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation_headers.html b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation_headers.html index 50e8cb88..366e15ae 100644 --- a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation_headers.html +++ b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation_headers.html @@ -8,6 +8,7 @@ <th>uv-coverage</th> <th>Sensitivity</th> <th>Conditions</th> + <th>Diagnostic plots</th> <th>Current Quality</th> <th>Choose a Quality</th> </tr> \ No newline at end of file diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/validation_page.html b/atdb/taskdatabase/templates/taskdatabase/validation/validation_page.html index ad60380d..88a9b12a 100644 --- a/atdb/taskdatabase/templates/taskdatabase/validation/validation_page.html +++ b/atdb/taskdatabase/templates/taskdatabase/validation/validation_page.html @@ -10,9 +10,7 @@ <div class="col-8"> <h3>Validation</h3> These are the tasks in status 'stored' that can be validated. Click one of the quality buttons to validate. - <td> - {% include 'taskdatabase/filter/search.html' %} - </td> + <td>{% include 'taskdatabase/filter/search.html' %}</td> <hr> </div> </div> diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index ad825a43..acdb79f4 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -82,6 +82,7 @@ urlpatterns = [ path('tasks/<int:pk>/setstatus/<new_status>', views.TaskSetStatus, name='task-details-setstatus'), path('tasks/<int:pk>/validate/<quality>/<new_status>/<page>', views.TaskValidate, name='task-validate-view'), + path('tasks/<int:pk>/retry//<new_status>/<page>', views.TaskRetry, name='task-retry-view'), path('tasks/<int:pk>/change_priority/<priority_change>/<page>', views.ChangePriority, name='task-change-priority'), path('tasks/<int:pk>/change_priority/<priority_change>', views.ChangePriority, name='task-change-priority'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 7e7ac65a..ea83c2ea 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -457,7 +457,6 @@ class ShowFailuresPage(ListView): context_object_name = 'my_tasks' def get_queryset(self): - status = self.request.GET.get('status') search_box = self.request.GET.get('search_box', None) # get the sort variable from the session or use default @@ -469,12 +468,12 @@ class ShowFailuresPage(ListView): tasks = Task.objects.filter(status__icontains='failed').order_by(sort) # check if there is a 'task_filter' put on the session - try: - filter = self.request.session['task_filter'] - if filter != 'all': - tasks = get_searched_tasks(filter, sort) - except: - pass + #try: + # filter = self.request.session['task_filter'] + # if filter != 'all': + # tasks = get_searched_tasks(filter, sort) + #except: + # pass if (search_box is not None): tasks = get_searched_tasks(search_box, sort) @@ -924,6 +923,21 @@ def TaskValidate(request, pk, quality, new_status, page=0): return redirect('/atdb/validation?page=' + page) +@login_required +def TaskRetry(request, pk, new_status, page=0): + model = Task + task = Task.objects.get(pk=pk) + task.new_status = new_status + task.save() + + if page == 0: + # redirect to details screen + return redirect('/atdb/task_details') + else: + # redirect to tasks list + return redirect('/atdb/failures?page=' + page) + + # set a filter value in the session, used later by the 'get_searched_tasks' mechanism def TaskSetFilter(request, filter): request.session['task_filter'] = filter -- GitLab