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

working on annotation

moved multi-query into deeper folder
parent 92ac3c66
Branches
No related tags found
2 merge requests!227working on annotation,!225working on annotation
from django import forms from django import forms
STATUS_CHOICES = [('defined','defined'),
('scheduled','scheduled'),
('running','running'),
('removed','removed'),
('error','error')
]
class FilterForm(forms.Form): class QualityAnnotationForm(forms.Form):
status = forms.MultipleChoiceField(required=True, widget=forms.CheckboxSelectMultiple, choices=STATUS_CHOICES) annotation = forms.CharField(label='', widget=forms.Textarea, max_length=255)
return_to_page = forms.IntegerField(widget=forms.HiddenInput)
\ No newline at end of file
...@@ -138,9 +138,9 @@ def convert_quality_to_html(task): ...@@ -138,9 +138,9 @@ def convert_quality_to_html(task):
pass pass
results += "<tr><td><b>QA diagnostic plots</b></td><td>" + "-" + "</td></tr>" results += "<tr><td><b>QA diagnostic plots</b></td><td>" + "-" + "</td></tr>"
results += "<tr><td><b>Workflow summary parset</b></td><td>" + "-" + "</td></tr>" #results += "<tr><td><b>Workflow summary parset</b></td><td>" + "-" + "</td></tr>"
results += "<tr><td><b>Summary logs</b></td><td>" + "-" + "</td></tr>" #results += "<tr><td><b>Summary logs</b></td><td>" + "-" + "</td></tr>"
results += "<tr><td><b>QA summary.hf5</b></td><td>" + "-" + "</td></tr>" #results += "<tr><td><b>QA summary.hf5</b></td><td>" + "-" + "</td></tr>"
except Exception as err: except Exception as err:
results = "<tr><td>" + str(err) + "</td></tr>" results = "<tr><td>" + str(err) + "</td></tr>"
......
<div id="popup" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-body"></div>
</div>
</div>
</div>
\ No newline at end of file
...@@ -12,5 +12,5 @@ ...@@ -12,5 +12,5 @@
$(document).on('keypress click', function() { intvrefresh() }); $(document).on('keypress click', function() { intvrefresh() });
intvrefresh(); intvrefresh();
}(30)); }(5));
</script> </script>
<form class="navbar-form navbar-left" role="Annotate" onsubmit="writeToLocalStorage('annotate')" method="get" action="">
<div class="form-group">
<input type="text" class="form-control" id="annotate_box" name="annotate" placeholder="Annotate..." value="">
</div>
</form>
{% load static %}
{% block myBlock %}
<div class="container-fluid details-container">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<h4>Quality Annotation</h4> <h4>Quality Annotation</h4>
<table class="table table-striped">
{{ quality_remarks | safe }} <form action="{% url 'annotate-quality' task.id %}" method="POST">
{% csrf_token %}
<table>
<tr>
{{ form }}
</tr>
<tr>
<button class="btn btn-success btn-sm" type="submit"><i class="fas fa-check"></i> OK</button>
<a href="{% url 'validation' %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-times-circle"></i> Cancel</a>&nbsp
</tr>
</table> </table>
</form>
</div> </div>
<form class="navbar-form navbar-left" role="Annotate" onsubmit="writeToLocalStorage('annotate')" method="get" action="">
<div class="form-group">
<input type="text" class="form-control" id="annotate_box" name="annotate" placeholder="Enter annotation..." value={{ quality_remarks | safe }}>
</div> </div>
</form>
</div> </div>
{% endblock %}
{% include "taskdatabase/modal/modal_script.html" %} {% include "taskdatabase/modal/modal_script.html" %}
{% include "taskdatabase/modal/modal.html" %} {% include "taskdatabase/modal/modal.html" %}
\ No newline at end of file
...@@ -48,14 +48,14 @@ ...@@ -48,14 +48,14 @@
<td> <td>
{% if task.has_quality_remarks %} {% if task.has_quality_remarks %}
<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' task.id my_tasks.number task.has_quality_remarks %}"
data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> data-popup-url="{% url 'annotate-quality' task.id my_tasks.number task.has_quality_remarks %}">
<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' task.id my_tasks.number task.has_quality_remarks %}"
data-popup-url="{% url 'annotate-quality' task.id my_tasks.number %}"> data-popup-url="{% url 'annotate-quality' task.id my_tasks.number task.has_quality_remarks %}">
<i class="fas fa-pen-alt"></i> <i class="fas fa-pen-alt"></i>
</a>&nbsp; </a>&nbsp;
{% endif %} {% endif %}
...@@ -73,4 +73,4 @@ ...@@ -73,4 +73,4 @@
{% endfor %} {% endfor %}
{% include "taskdatabase/modal/modal_script.html" %} {% include "taskdatabase/modal/modal_script.html" %}
{% include "taskdatabase/modal/modal.html" %} {% include "taskdatabase/modal/modal_no_close.html" %}
\ No newline at end of file \ No newline at end of file
...@@ -21,9 +21,10 @@ urlpatterns = [ ...@@ -21,9 +21,10 @@ urlpatterns = [
path('task_details/<int:id>/<page>', views.TaskDetails, name='task-details'), path('task_details/<int:id>/<page>', views.TaskDetails, name='task-details'),
path('task_details/', views.TaskDetails, name='task-details'), path('task_details/', views.TaskDetails, name='task-details'),
path('task_quality/<int:id>/<page>', views.TaskQuality, name='task-quality'), path('task_quality/<int:id>/<page>', views.ShowTaskQuality, name='task-quality'),
path('task_quality/', views.TaskQuality, 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>/<page>/<new_remark>', 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/', views.AnnotateQuality, name='annotate-quality'),
path('show-inputs/<int:id>/', views.ShowInputs, name='show-inputs'), path('show-inputs/<int:id>/', views.ShowInputs, name='show-inputs'),
......
...@@ -27,6 +27,7 @@ from rest_framework.request import Request ...@@ -27,6 +27,7 @@ from rest_framework.request import Request
from django.conf import settings from django.conf import settings
from .models import Task, Status, Workflow, LogEntry, Configuration, Job, PostProcessingRule, Monitor, LatestMonitor from .models import Task, Status, Workflow, LogEntry, Configuration, Job, PostProcessingRule, Monitor, LatestMonitor
from .tables import TaskTable from .tables import TaskTable
from .forms import QualityAnnotationForm
from django.db.models import Q from django.db.models import Q
from .serializers import \ from .serializers import \
...@@ -554,7 +555,7 @@ def TaskDetails(request, id=0, page=0): ...@@ -554,7 +555,7 @@ def TaskDetails(request, id=0, page=0):
return render(request, "taskdatabase/tasks/task_details.html", {'task': task, 'logentries': logentries_html}) return render(request, "taskdatabase/tasks/task_details.html", {'task': task, 'logentries': logentries_html})
def TaskQuality(request, id=0, page=0): def ShowTaskQuality(request, id=0, page=0):
try: try:
task = Task.objects.get(id=id) task = Task.objects.get(id=id)
...@@ -579,29 +580,38 @@ def TaskQuality(request, id=0, page=0): ...@@ -579,29 +580,38 @@ def TaskQuality(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): def AnnotateQuality(request, id=0, page=0, new_remark=""):
try:
task = Task.objects.get(id=id)
# store the requested task_id on the session # store the current page on the session
request.session['task_id'] = task.id # request.session['page'] = page
except: # a POST means that the form is filled in and should be stored in the database
# when an invalid id is given, like '/atdb/task_details/0/', if request.method == "POST":
# then look if there is a task stored on the session
form = QualityAnnotationForm(request.POST)
if form.is_valid():
task = Task.objects.get(id=id)
try: try:
task_on_session = request.session['task_id'] task.remarks['quality'] = request.POST.get("annotation","")
task = Task.objects.get(id=task_on_session)
except: except:
messages.add_message(request, messages.WARNING, 'no task selected.') task.remarks = {}
return redirect('index') task.remarks['quality'] = request.POST.get("annotation","")
# store the current page on the session task.save()
request.session['page'] = page return redirect('/atdb/validation?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']
except:
quality_remarks = ""
form = QualityAnnotationForm(initial={'annotation': quality_remarks, 'return_to_page': page})
return render(request, "taskdatabase/validation/annotate_quality.html", {'task': task, 'quality_remarks': quality_remarks}) return render(request, "taskdatabase/validation/annotate_quality.html", {'task': task, 'page': page, 'form':form})
def ShowInputs(request, id): def ShowInputs(request, id):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment