diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index ddf73715b57352e0cbf76e7b3d56b1d6df1cc359..857c36fc74b513fa8bbb5a49003080e640199c49 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 6f67507a5f61f7580aa9088f0217dec20ea09d5b..fa53f4e8248850abeba9a28b0a2ae0f1c5e0ce49 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 796d6e526453ec0dacf15db6dbc9a6735d539c20..817f4405af2f60f30e83df0771cb2bc80a95fe1f 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 acc10b2221c9fbe22c4239d1cfa89715d7213dd5..8e7485289688aac4f86868fe82e48e9455cca1e2 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 e665307f1ab36c2332ebfdcfc6acc0e83e6a5ef7..77cf0330ef08c95c1fad10b231f5fade70674f5b 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 8de0b96ffcaac0c319837e4deda0434330b46c29..d49a67de8c2dbbbf0fb2d44ebb21c6e2eb3ea0f8 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 50e8cb882c9222775dd2f7a566523bec741a8cbe..366e15aec5f2deea1ceedc429e44e55b25645d0d 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 ad60380d51bacdc879330f0e43bf1f68582ee9ea..88a9b12ab2b51ec097c0bbecc311f33e1c9dda52 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 ad825a43387d0a773a0659b8a3691ee5c5a266ac..acdb79f4e47bb2a9cc8227289459a45c38f04aee 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 7e7ac65ae422ff7f939a0fa64292cdb0ffba04cd..ea83c2ea47ee2460f2b803a5df9cf805d951a5c6 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