diff --git a/atdb/taskdatabase/templates/taskdatabase/quality/tasks.html b/atdb/taskdatabase/templates/taskdatabase/quality/tasks.html index b4bc7eeb01e5cbec86374c23354179c671fb97a2..81b85f74a2b26c5884c88102cd306a24fa4ac4b0 100644 --- a/atdb/taskdatabase/templates/taskdatabase/quality/tasks.html +++ b/atdb/taskdatabase/templates/taskdatabase/quality/tasks.html @@ -72,7 +72,7 @@ <td class="{{ task.quality }}">{{ task.quality|default_if_none:"-" }}</td> <td> {% if task.status == "stored" %} - <a href="{% url 'task-setstatus-view' task.pk 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> validate</a> + <a href="{% url 'task-validate-task' task.pk 'calculated' 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> Validate</a> {% endif %} </td> </tr> diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html b/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html index 3370f9cfb6f35b4e5027b851746cab058e4e40e1..fca15520f50b1672174bd74084783955169972c4 100644 --- a/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html +++ b/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html @@ -1,16 +1,16 @@ {% if task.sasid_is_verified %} - <a href="{% url 'task-validate-view' task.pk 'poor' 'validated' my_tasks.number %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-check"></i> P</a> + <a href="{% url 'task-validate-sasid' task.pk 'poor' 'validated' my_tasks.number %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-check"></i> P</a> {% endif %} {% if task.sasid_is_verified %} - <a href="{% url 'task-validate-view' task.pk 'moderate' 'validated' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-check"></i> M</a> + <a href="{% url 'task-validate-sasid' task.pk 'moderate' 'validated' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-check"></i> M</a> {% endif %} {% if task.sasid_is_verified %} - <a href="{% url 'task-validate-view' task.pk 'good' 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> G</a> + <a href="{% url 'task-validate-sasid' task.pk 'good' 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> G</a> {% endif %} - {% if task.sasid_is_verified %} - <a href="{% url 'task-validate-view' task.pk 'calculated' 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> Validate</a> + {% if task.sasid_is_verified %} + <a href="{% url 'task-validate-sasid' task.pk 'calculated' 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> Validate</a> {% endif %} diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index faeda24a365005247690e5bf00e5e791ac14d2b7..874b4da18ce9ef1a70525d9c84a5571ab740db46 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -95,7 +95,8 @@ urlpatterns = [ path('tasks/<int:pk>/setstatus/<new_status>/<page>', views.TaskSetStatus, name='task-setstatus-view'), 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>/validate-sasid/<quality>/<new_status>/<page>', views.TaskValidateSasId, name='task-validate-sasid'), + path('tasks/<int:pk>/validate-task/<quality>/<new_status>/<page>', views.TaskValidateTask, name='task-validate-task'), path('tasks/<int:pk>/retry/<new_status>/<page>', views.TaskRetry, name='task-retry-view'), path('tasks/<int:pk>/discard/<new_status>/<page>', views.TaskDiscard, name='task-discard-view'), path('tasks/<int:pk>/discard_sasid/<new_status>/<page>', views.TaskDiscardSasId, name='task-discard-view-sasid'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index b6d0e41ebdf9c760daaa8351020ecdb9df05df32..04f5d9acb607bee9795f8113a32e3f4ed11e9bb2 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -1068,7 +1068,7 @@ def TaskSetStatus(request, pk, new_status, page=0): @login_required -def TaskValidate(request, pk, quality, new_status, page=0): +def TaskValidateSasId(request, pk, quality, new_status, page=0): """ find all tasks with the same SAS_ID of the given task (pk), and set its quality to all of them This is used by the 'P/M/G/Validate' buttons on the Validation Page @@ -1102,6 +1102,34 @@ def TaskValidate(request, pk, quality, new_status, page=0): # redirect to tasks list return redirect_with_params('validation', '?page=' + page) +@login_required +def TaskValidateTask(request, pk, quality, new_status, page=0): + """ + Find the task (pk), and set its quality to the calculated quality + (if present, otherwise just set the status to 'validated') + This is used by the 'Validate' button on the Quality Page + + """ + task = Task.objects.get(pk=pk) + + if quality == 'calculated': + try: + quality = task.calculated_qualities['per_task'] + except: + # no calculated quality present, just the existing quality (so no change) + quality = task.quality + + task.quality = quality + task.new_status = new_status + task.save() + + if page == 0: + # redirect to details screen + return redirect('quality') + else: + # redirect to tasks list + return redirect_with_params('quality', '?page=' + page) + @login_required def TaskRetry(request, pk, new_status, page=0):