diff --git a/rcr/filters.py b/rcr/filters.py index 3eb2af84..58985659 100755 --- a/rcr/filters.py +++ b/rcr/filters.py @@ -31,6 +31,14 @@ def get_assessor(request): return queryset +class OutcomeFilter(django_filters.FilterSet): + class Meta: + model = Item + fields = { + "outcome": ["exact"], + } + + class ItemFilter(django_filters.FilterSet): assigned_to_radiology = django_filters.ModelMultipleChoiceFilter( queryset=get_rad, null_label="No user" diff --git a/rcr/templates/rcr/gap.html b/rcr/templates/rcr/gap.html index 92ea41b9..ccc94125 100644 --- a/rcr/templates/rcr/gap.html +++ b/rcr/templates/rcr/gap.html @@ -3,9 +3,19 @@ {% block content %}
This page lists all of the radiology categories and the items that exist within them. The items are grouped by category.
--Item count: {{category.items_radiology.count}} +Item count: {{items.count}}
{% endfor %} diff --git a/rcr/views.py b/rcr/views.py index 7dfa0ec3..4d3a9836 100644 --- a/rcr/views.py +++ b/rcr/views.py @@ -11,7 +11,7 @@ from django.contrib.auth.models import User from django.contrib.auth.decorators import user_passes_test from django.db.models import Q -from rcr.filters import ItemFilter +from rcr.filters import ItemFilter, OutcomeFilter from rcr.models import Item, Outcome, RadiologyCategory from rcr.forms import AssessorAssignmentForm, ItemForm @@ -76,17 +76,24 @@ def radiology_review(request): def radiology_gap(request): #items = Item.objects.all().prefetch_related("assessed_by") - item_filter = ItemFilter(request.GET, queryset=Item.objects.all().prefetch_related("assessed_by")) - items = item_filter.qs.prefetch_related("assessed_by") + item_filter = OutcomeFilter(request.GET, queryset=Item.objects.all().prefetch_related("assessed_by")) + items = item_filter.qs categories = RadiologyCategory.objects.all().order_by("name").prefetch_related("items_radiology", "items_radiology__level", "items_radiology__radiology_condition") + filtered_categories = [] + + for category in categories: + filtered_categories.append((category, item_filter.qs.intersection(category.items_radiology.all()))) + + conditions = Condition.objects.all().order_by("name") outcomes = Outcome.objects.all().order_by("name") return render(request, "rcr/gap.html", {"items": items, "item_filter": item_filter, + "filtered_categories": filtered_categories, "categories": categories, "conditions": conditions, "outcomes": outcomes,