Skip to content
Snippets Groups Projects
Commit be5f3537 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

possibility of ignoring missing subjects

parent 11645da6
No related branches found
No related tags found
1 merge request!65Simple connection to RED Cap
Pipeline #
......@@ -15,7 +15,8 @@ Including another URLconf
"""
from django.conf.urls import url
from web.api_views import worker, location, subject, appointment_type, appointment, configuration, daily_planning
from web.api_views import worker, location, subject, appointment_type, appointment, configuration, daily_planning, \
redcap
urlpatterns = [
# appointments
......@@ -39,7 +40,6 @@ urlpatterns = [
# locations
url(r'^locations$', location.locations, name='web.api.locations'),
# worker data
url(r'^specializations$', worker.specializations, name='web.api.specializations'),
url(r'^units$', worker.units, name='web.api.units'),
......@@ -50,4 +50,10 @@ urlpatterns = [
url(r'^availabilities/(?P<date>\d{4}-\d{2}-\d{2})/$', daily_planning.availabilities, name='web.api.availabilities'),
url(r'^events_persist$', daily_planning.events_persist, name='web.api.events_persist'),
# worker data
url(r'^redcap/missing_subjects/(?P<missing_subject_id>\d+):ignore$', redcap.ignore_missing_subject,
name='web.api.redcap.ignore_missing_subject'),
url(r'^redcap/missing_subjects/(?P<missing_subject_id>\d+):unignore$', redcap.unignore_missing_subject,
name='web.api.redcap.unignore_missing_subject'),
]
from django.contrib.auth.decorators import login_required
from django.http import JsonResponse
from web.models import MissingSubject
@login_required
def ignore_missing_subject(request, missing_subject_id):
missing_subjects = MissingSubject.objects.filter(id=missing_subject_id)
for missing_subject in missing_subjects:
missing_subject.ignore = True
missing_subject.save()
return JsonResponse({
"status": "ok"
})
@login_required
def unignore_missing_subject(request, missing_subject_id):
missing_subjects = MissingSubject.objects.filter(id=missing_subject_id)
for missing_subject in missing_subjects:
missing_subject.ignore = False
missing_subject.save()
return JsonResponse({
"status": "ok"
})
.ignore-row {
background-color: orange;
}
function ignore_missing_subject(id, url) {
$.ajax({
url: url,
success: function () {
$("#ignore_" + id).hide()
$("#unignore_" + id).show()
$("#row_" + id).find('td').addClass("ignore-row");
}
});
}
function unignore_missing_subject(id, url) {
$.ajax({
url: url,
success: function () {
$("#unignore_" + id).hide()
$("#ignore_" + id).show()
$("#row_" + id).find('td').removeClass("ignore-row");
}
});
}
......@@ -30,10 +30,10 @@
{% for inconsistent_subject in inconsistent_subjects %}
<tr>
<td>
<a href="{% url 'web.views.subject_edit' inconsistent_subject.subject.id %}">{{ inconsistent_subject.subject }}</a>
<a class="btn btn-block btn-default" href="{% url 'web.views.subject_edit' inconsistent_subject.subject.id %}">{{ inconsistent_subject.subject }}</a>
</td>
<td>
<a href="{{ inconsistent_subject.redcap_url }}"
<a class="btn btn-block btn-default" href="{{ inconsistent_subject.redcap_url }}"
target="_redcap">{{ inconsistent_subject.subject.nd_number }}</a>
</td>
<td>
......
......@@ -5,6 +5,7 @@
{{ block.super }}
<!-- DataTables -->
<link rel="stylesheet" href="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.css' %}">
<link rel="stylesheet" href="{% static 'css/redcap.css' %}">
{% endblock styles %}
{% block ui_active_tab %}'subjects'{% endblock ui_active_tab %}
......@@ -29,19 +30,28 @@
</thead>
<tbody>
{% for missing_subject in missing_subjects %}
<tr>
<td>{% if missing_subject.subject %}
<tr id="row_{{ missing_subject.id }}">
<td {% if missing_subject.ignore %}class="ignore-row"{% endif %}>{% if missing_subject.subject %}
{{ missing_subject.subject.nd_number }} {% elif missing_subject.redcap_id %}
{{ missing_subject.redcap_id }} {% endif %}</td>
<td>{% if missing_subject.subject %}
<a href="{% url 'web.views.subject_edit' missing_subject.subject.id %}">{{ missing_subject.subject }}</a>
<td {% if missing_subject.ignore %}class="ignore-row"{% endif %}>{% if missing_subject.subject %}
<a class="btn btn-block btn-default"
href="{% url 'web.views.subject_edit' missing_subject.subject.id %}">{{ missing_subject.subject }}</a>
{% endif %}
</td>
<td>{% if missing_subject.redcap_id %}
<a href="{{ missing_subject.redcap_url }}" target="_redcap">{{ missing_subject.redcap_id }}</a> {% endif %}
<td {% if missing_subject.ignore %}class="ignore-row"{% endif %}>{% if missing_subject.redcap_id %}
<a class="btn btn-block btn-default" href="{{ missing_subject.redcap_url }}"
target="_redcap">{{ missing_subject.redcap_id }}</a> {% endif %}
</td>
<td>
{% if missing_subject.ignore %}YES{% else %}NO{% endif %}
<td {% if missing_subject.ignore %}class="ignore-row"{% endif %}>
<a class="btn btn-block btn-warning" id="ignore_{{ missing_subject.id }}"
onclick="ignore_missing_subject({{ missing_subject.id }}, '{% url 'web.api.redcap.ignore_missing_subject' missing_subject.id %}')"
{% if missing_subject.ignore %}style="display:none"{% endif %}>IGNORE
</a>
<a class="btn btn-block btn-success" id="unignore_{{ missing_subject.id }}"
onclick="unignore_missing_subject({{ missing_subject.id }}, '{% url 'web.api.redcap.unignore_missing_subject' missing_subject.id %}')"
{% if not missing_subject.ignore %}style="display:none"{% endif %}>UN-IGNORE
</a>
</td>
</tr>
{% endfor %}
......@@ -56,13 +66,14 @@
<script src="{% static 'AdminLTE/plugins/datatables/jquery.dataTables.min.js' %}"></script>
<script src="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.min.js' %}"></script>
<script src="{% static 'js/redcap.js' %}"></script>
<script>
$(function () {
$('#table').DataTable({
"paging": true,
"lengthChange": false,
"searching": true,
"ordering": true,
"ordering": false,
"info": true,
"autoWidth": false
});
......
......@@ -33,8 +33,8 @@ def get_exceeded_visit_notifications_count(user):
def get_missing_redcap_subject_notification_count(user):
notification = NotificationCount(
title="missing RED Cap subject",
count=get_missing_redcap_subjects(user).count(),
style="fa fa-user text-yellow",
count=get_missing_redcap_subjects(user, False).count(),
style="fa fa-user text-red",
type='web.views.missing_redcap_subject')
return notification
......@@ -204,8 +204,11 @@ def get_exceeded_visits(user):
).order_by('datetime_begin')
def get_missing_redcap_subjects(user):
return MissingSubject.objects.all().order_by("ignore")
def get_missing_redcap_subjects(user, include_ignored=True):
if include_ignored:
return MissingSubject.objects.order_by("ignore")
else:
return MissingSubject.objects.filter(ignore=False)
def get_inconsistent_redcap_subjects(user):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment