diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index cb0443b006a03e48a1e5e905520e595b30017e51..c5315f5fd0472b40f31c377c029d24b5b6822d74 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -139,6 +139,20 @@ class Task(models.Model): except: return None + @property + def get_quality_remarks_taskid(self): + try: + return self.remarks['quality_taskid'] + except: + return None + + @property + def get_quality_remarks_sasid(self): + try: + return self.remarks['quality_sasid'] + except: + return None + @property def quality_as_list(self): try: diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index 9fcee8dde687a5f48c80dce2d54ce912e2b37d49..47fcad4ff9c4e7b0cc9f48713cdb1d271c4eb093 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 27 November 2022 + <p class="footer"> Version 2 December 2022 </div> diff --git a/atdb/taskdatabase/templates/taskdatabase/quality/annotate_quality_taskid.html b/atdb/taskdatabase/templates/taskdatabase/quality/annotate_quality_taskid.html new file mode 100644 index 0000000000000000000000000000000000000000..23d0e3d6e076a8841b0b8c146b337dae15df78ee --- /dev/null +++ b/atdb/taskdatabase/templates/taskdatabase/quality/annotate_quality_taskid.html @@ -0,0 +1,27 @@ + +{% block myBlock %} +<div class="container-fluid details-container"> + + + <div class="card"> + <div class="card-body"> + <h4>Quality Annotation (per task)</h4> + + <form class="post-form" action="{% url 'annotate-quality-taskid' task.id %}" method="POST"> + {% csrf_token %} + <div> + {{ form }} + </div> + <div><button class="btn btn-success btn-sm" type="submit"><i class="fas fa-check"></i> OK</button> + <a href="{% url 'quality' %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-times-circle"></i> Cancel</a>  + </div> + </form> + + </div> + </div> +</div> +{% endblock %} + + +{% include "taskdatabase/modal/modal_script.html" %} +{% include "taskdatabase/modal/modal.html" %} \ No newline at end of file diff --git a/atdb/taskdatabase/templates/taskdatabase/quality/tasks_quality.html b/atdb/taskdatabase/templates/taskdatabase/quality/tasks_quality.html index a52b81a3dcf40609ffdf04cb3e494ba8ca952e8d..76258aec0093d5597d5218b442966c6b8c971945 100644 --- a/atdb/taskdatabase/templates/taskdatabase/quality/tasks_quality.html +++ b/atdb/taskdatabase/templates/taskdatabase/quality/tasks_quality.html @@ -53,16 +53,16 @@ {% endif %} <td>{% if user.is_authenticated %} - {% if task.get_quality_remarks %} + {% if task.get_quality_remarks_taskid %} <a class="open-modal btn btn-warning btn-sm" - href="{% url 'annotate-quality' task.id my_tasks.number %}" - data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> + href="{% url 'annotate-quality-taskid' task.id my_tasks.number %}" + data-popup-url="{% url 'annotate-quality-taskid' task.id my_tasks.number %}"> <i class="fas fa-pen-alt"></i> </a> {% else %} <a class="open-modal btn btn-secondary btn-sm" - href="{% url 'annotate-quality' task.id my_tasks.number %}" - data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> + href="{% url 'annotate-quality-taskid' task.id my_tasks.number %}" + data-popup-url="{% url 'annotate-quality-taskid' task.id my_tasks.number %}"> <i class="fas fa-pen-alt"></i> </a> {% endif %} diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/annotate_quality.html b/atdb/taskdatabase/templates/taskdatabase/validation/annotate_quality_sasid.html similarity index 89% rename from atdb/taskdatabase/templates/taskdatabase/validation/annotate_quality.html rename to atdb/taskdatabase/templates/taskdatabase/validation/annotate_quality_sasid.html index 80b7910ca7a4e3d3419bbbc8502bf7dfd32ef18a..86ff0efb6aa8f696bc2e7e95ceaa2dd8f4200385 100644 --- a/atdb/taskdatabase/templates/taskdatabase/validation/annotate_quality.html +++ b/atdb/taskdatabase/templates/taskdatabase/validation/annotate_quality_sasid.html @@ -5,9 +5,9 @@ <div class="card"> <div class="card-body"> - <h4>Quality Annotation</h4> + <h4>Quality Annotation (per SAS_ID)</h4> - <form class="post-form" action="{% url 'annotate-quality-sasid' task.sas_id %}" method="POST"> + <form class="post-form" action="{% url 'annotate-quality-sasid' task.id %}" method="POST"> {% csrf_token %} <div> {{ form }} diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html index dfd608cd6771395fefc1b49241b2c78f0588d807..4392498eff9731a85653b70499e5342945946c87 100644 --- a/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html +++ b/atdb/taskdatabase/templates/taskdatabase/validation/tasks_validation.html @@ -29,16 +29,16 @@ <td> {% if user.is_authenticated %} - {% if task.get_quality_remarks %} + {% if task.get_quality_remarks_sasid %} <a class="open-modal btn btn-warning btn-sm" - href="{% url 'annotate-quality' task.id my_tasks.number %}" - data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> + href="{% url 'annotate-quality-sasid' task.id my_tasks.number %}" + data-popup-url="{% url 'annotate-quality-sasid' task.id my_tasks.number %}"> <i class="fas fa-pen-alt"></i> </a> {% else %} <a class="open-modal btn btn-secondary btn-sm" - href="{% url 'annotate-quality' task.id my_tasks.number %}" - data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> + href="{% url 'annotate-quality-sasid' task.id my_tasks.number %}" + data-popup-url="{% url 'annotate-quality-sasid' task.id my_tasks.number %}"> <i class="fas fa-pen-alt"></i> </a> {% endif %} diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index 891749a628a6710fa6412f9d6f432861a0e7142b..b486b50fabd1876755a20dfafad23a30b3d42e9e 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -23,10 +23,11 @@ urlpatterns = [ path('task_details/', views.TaskDetails, name='task-details'), path('task_quality/<int:id>/<page>', views.ShowTaskQuality, name='task-quality'), path('task_quality/', views.ShowTaskQuality, name='task-quality'), - path('annotate_quality/<int:id>/<page>', views.AnnotateQuality, name='annotate-quality'), - path('annotate_quality/<int:id>', views.AnnotateQuality, name='annotate-quality'), - path('annotate_quality/', views.AnnotateQuality, name='annotate-quality'), - path('annotate_quality_sasid/<sas_id>', views.AnnotateQualitySasId, name='annotate-quality-sasid'), + path('annotate_quality_taskid/<int:id>/<page>', views.AnnotateQualityTaskId, name='annotate-quality-taskid'), + path('annotate_quality_taskid/<int:id>', views.AnnotateQualityTaskId, name='annotate-quality-taskid'), + path('annotate_quality_taskid/', views.AnnotateQualityTaskId, name='annotate-quality-taskid'), + path('annotate_quality_sasid/<int:id>', views.AnnotateQualitySasId, name='annotate-quality-sasid'), + path('annotate_quality_sasid/<int:id>/<page>', views.AnnotateQualitySasId, name='annotate-quality-sasid'), path('show_inspectionplots/<int:id>/<page>', views.ShowInspectionPlots, name='inspection-plots'), path('show-inputs/<int:id>/', views.ShowInputs, name='show-inputs'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 45284f9fc566010bba07c7720cdc392861da476c..389fbf687a85218c013cd6656e123904ebb0723a 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -526,7 +526,7 @@ def ShowTaskQuality(request, id=0, page=0): return render(request, "taskdatabase/tasks/task_quality.html", {'task': task, 'quality': quality_html}) -def AnnotateQuality(request, id=0, page=0, new_remark=""): +def AnnotateQualityTaskId(request, id=0, page=0): # a POST means that the form is filled in and should be stored in the database if request.method == "POST": @@ -535,41 +535,49 @@ def AnnotateQuality(request, id=0, page=0, new_remark=""): if form.is_valid(): task = Task.objects.get(id=id) try: - task.remarks['quality'] = request.POST.get("annotation", "") + task.remarks['quality_taskid'] = request.POST.get("annotation", "") except: task.remarks = {} - task.remarks['quality'] = request.POST.get("annotation", "") + task.remarks['quality_taskid'] = request.POST.get("annotation", "") task.save() - return redirect_with_params('validation', '?page=' + request.POST.get("return_to_page", 1)) + return redirect_with_params('quality', '?page=' + request.POST.get("return_to_page", 1)) else: # a GET means that the form should be presented to be filled in task = Task.objects.get(id=id) try: - quality_remarks = task.remarks['quality'] + quality_remarks = task.remarks['quality_taskid'] except: quality_remarks = "" form = QualityAnnotationForm(initial={'annotation': quality_remarks, 'return_to_page': page}) - return render(request, "taskdatabase/validation/annotate_quality.html", + return render(request, "taskdatabase/quality/annotate_quality_taskid.html", {'task': task, 'page': page, 'form': form}) -def AnnotateQualitySasId(request, sas_id=0, page=0, new_remark=""): +def AnnotateQualitySasId(request, id=0, page=0): # a POST means that the form is filled in and should be stored in the database if request.method == "POST": form = QualityAnnotationForm(request.POST) if form.is_valid(): - tasks = Task.objects.filter(sas_id=sas_id) + task = Task.objects.get(id=id) + tasks = Task.objects.filter(sas_id=task.sas_id) for task in tasks: try: - task.remarks['quality'] = request.POST.get("annotation", "") + remark_per_sasid = request.POST.get("annotation", "") + try: + remark_per_taskid = task.remarks['quality_taskid'] + except: + remark_per_taskid = '' + new_remark_per_taskid = remark_per_taskid + "\n\n" + remark_per_sasid + task.remarks['quality_taskid'] = new_remark_per_taskid + task.remarks['quality_sasid'] = remark_per_sasid except: task.remarks = {} - task.remarks['quality'] = request.POST.get("annotation", "") + task.remarks['quality_sasid'] = request.POST.get("annotation", "") task.save() @@ -579,12 +587,12 @@ def AnnotateQualitySasId(request, sas_id=0, page=0, new_remark=""): # a GET means that the form should be presented to be filled in task = Task.objects.get(id=id) try: - quality_remarks = task.remarks['quality'] + quality_remarks = task.remarks['quality_sasid'] except: quality_remarks = "" form = QualityAnnotationForm(initial={'annotation': quality_remarks, 'return_to_page': page}) - return render(request, "taskdatabase/validation/annotate_quality.html", + return render(request, "taskdatabase/validation/annotate_quality_sasid.html", {'task': task, 'page': page, 'form': form}) def ShowInspectionPlots(request, id=0, page=0):