Skip to content
Snippets Groups Projects
Commit ff95d51f authored by Nico Vermaas's avatar Nico Vermaas
Browse files

Merge branch 'SDC-791-validation-per-sasid' into 'master'

split annotation in taskid and sasid to preserve the remarks on both levels,...

See merge request !266
parents 6ff95519 d375cea6
No related branches found
No related tags found
1 merge request!266split annotation in taskid and sasid to preserve the remarks on both levels,...
Pipeline #40518 passed
...@@ -139,6 +139,20 @@ class Task(models.Model): ...@@ -139,6 +139,20 @@ class Task(models.Model):
except: except:
return None 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 @property
def quality_as_list(self): def quality_as_list(self):
try: try:
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
{% include 'taskdatabase/pagination.html' %} {% include 'taskdatabase/pagination.html' %}
</div> </div>
</div> </div>
<p class="footer"> Version 27 November 2022 <p class="footer"> Version 2 December 2022
</div> </div>
......
{% 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>&nbsp
</div>
</form>
</div>
</div>
</div>
{% endblock %}
{% include "taskdatabase/modal/modal_script.html" %}
{% include "taskdatabase/modal/modal.html" %}
\ No newline at end of file
...@@ -53,16 +53,16 @@ ...@@ -53,16 +53,16 @@
{% endif %} {% endif %}
<td>{% if user.is_authenticated %} <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" <a class="open-modal btn btn-warning btn-sm"
href="{% url 'annotate-quality' task.id my_tasks.number %}" href="{% url 'annotate-quality-taskid' task.id my_tasks.number %}"
data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> data-popup-url="{% url 'annotate-quality-taskid' task.id my_tasks.number %}">
<i class="fas fa-pen-alt"></i> <i class="fas fa-pen-alt"></i>
</a>&nbsp; </a>&nbsp;
{% else %} {% else %}
<a class="open-modal btn btn-secondary btn-sm" <a class="open-modal btn btn-secondary btn-sm"
href="{% url 'annotate-quality' task.id my_tasks.number %}" href="{% url 'annotate-quality-taskid' task.id my_tasks.number %}"
data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> data-popup-url="{% url 'annotate-quality-taskid' task.id my_tasks.number %}">
<i class="fas fa-pen-alt"></i> <i class="fas fa-pen-alt"></i>
</a>&nbsp; </a>&nbsp;
{% endif %} {% endif %}
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
<div class="card"> <div class="card">
<div class="card-body"> <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 %} {% csrf_token %}
<div> <div>
{{ form }} {{ form }}
......
...@@ -29,16 +29,16 @@ ...@@ -29,16 +29,16 @@
<td> <td>
{% if user.is_authenticated %} {% if user.is_authenticated %}
{% if task.get_quality_remarks %} {% if task.get_quality_remarks_sasid %}
<a class="open-modal btn btn-warning btn-sm" <a class="open-modal btn btn-warning btn-sm"
href="{% url 'annotate-quality' task.id my_tasks.number %}" href="{% url 'annotate-quality-sasid' task.id my_tasks.number %}"
data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> data-popup-url="{% url 'annotate-quality-sasid' task.id my_tasks.number %}">
<i class="fas fa-pen-alt"></i> <i class="fas fa-pen-alt"></i>
</a>&nbsp; </a>&nbsp;
{% else %} {% else %}
<a class="open-modal btn btn-secondary btn-sm" <a class="open-modal btn btn-secondary btn-sm"
href="{% url 'annotate-quality' task.id my_tasks.number %}" href="{% url 'annotate-quality-sasid' task.id my_tasks.number %}"
data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> data-popup-url="{% url 'annotate-quality-sasid' task.id my_tasks.number %}">
<i class="fas fa-pen-alt"></i> <i class="fas fa-pen-alt"></i>
</a>&nbsp; </a>&nbsp;
{% endif %} {% endif %}
......
...@@ -23,10 +23,11 @@ urlpatterns = [ ...@@ -23,10 +23,11 @@ urlpatterns = [
path('task_details/', views.TaskDetails, name='task-details'), path('task_details/', views.TaskDetails, name='task-details'),
path('task_quality/<int:id>/<page>', views.ShowTaskQuality, name='task-quality'), path('task_quality/<int:id>/<page>', views.ShowTaskQuality, name='task-quality'),
path('task_quality/', 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_taskid/<int:id>/<page>', views.AnnotateQualityTaskId, name='annotate-quality-taskid'),
path('annotate_quality/<int:id>', views.AnnotateQuality, name='annotate-quality'), path('annotate_quality_taskid/<int:id>', views.AnnotateQualityTaskId, name='annotate-quality-taskid'),
path('annotate_quality/', views.AnnotateQuality, name='annotate-quality'), path('annotate_quality_taskid/', views.AnnotateQualityTaskId, name='annotate-quality-taskid'),
path('annotate_quality_sasid/<sas_id>', views.AnnotateQualitySasId, name='annotate-quality-sasid'), 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_inspectionplots/<int:id>/<page>', views.ShowInspectionPlots, name='inspection-plots'),
path('show-inputs/<int:id>/', views.ShowInputs, name='show-inputs'), path('show-inputs/<int:id>/', views.ShowInputs, name='show-inputs'),
......
...@@ -526,7 +526,7 @@ def ShowTaskQuality(request, id=0, page=0): ...@@ -526,7 +526,7 @@ def ShowTaskQuality(request, id=0, page=0):
return render(request, "taskdatabase/tasks/task_quality.html", {'task': task, 'quality': quality_html}) 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 # a POST means that the form is filled in and should be stored in the database
if request.method == "POST": if request.method == "POST":
...@@ -535,41 +535,49 @@ def AnnotateQuality(request, id=0, page=0, new_remark=""): ...@@ -535,41 +535,49 @@ def AnnotateQuality(request, id=0, page=0, new_remark=""):
if form.is_valid(): if form.is_valid():
task = Task.objects.get(id=id) task = Task.objects.get(id=id)
try: try:
task.remarks['quality'] = request.POST.get("annotation", "") task.remarks['quality_taskid'] = request.POST.get("annotation", "")
except: except:
task.remarks = {} task.remarks = {}
task.remarks['quality'] = request.POST.get("annotation", "") task.remarks['quality_taskid'] = request.POST.get("annotation", "")
task.save() 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: else:
# a GET means that the form should be presented to be filled in # a GET means that the form should be presented to be filled in
task = Task.objects.get(id=id) task = Task.objects.get(id=id)
try: try:
quality_remarks = task.remarks['quality'] quality_remarks = task.remarks['quality_taskid']
except: except:
quality_remarks = "" quality_remarks = ""
form = QualityAnnotationForm(initial={'annotation': quality_remarks, 'return_to_page': page}) 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}) {'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 # a POST means that the form is filled in and should be stored in the database
if request.method == "POST": if request.method == "POST":
form = QualityAnnotationForm(request.POST) form = QualityAnnotationForm(request.POST)
if form.is_valid(): 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: for task in tasks:
try: 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: except:
task.remarks = {} task.remarks = {}
task.remarks['quality'] = request.POST.get("annotation", "") task.remarks['quality_sasid'] = request.POST.get("annotation", "")
task.save() task.save()
...@@ -579,12 +587,12 @@ def AnnotateQualitySasId(request, sas_id=0, page=0, new_remark=""): ...@@ -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 # a GET means that the form should be presented to be filled in
task = Task.objects.get(id=id) task = Task.objects.get(id=id)
try: try:
quality_remarks = task.remarks['quality'] quality_remarks = task.remarks['quality_sasid']
except: except:
quality_remarks = "" quality_remarks = ""
form = QualityAnnotationForm(initial={'annotation': quality_remarks, 'return_to_page': page}) 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}) {'task': task, 'page': page, 'form': form})
def ShowInspectionPlots(request, id=0, page=0): def ShowInspectionPlots(request, id=0, page=0):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment