From 512b222ccc5b0389d8232737a0afb9e123691304 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 20 Oct 2025 16:05:41 +0100 Subject: [PATCH] Add filters for condition, structure, finding, and presentation to QuestionFilter --- sbas/filters.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/sbas/filters.py b/sbas/filters.py index 1c5e5f93..be98dbec 100644 --- a/sbas/filters.py +++ b/sbas/filters.py @@ -1,6 +1,8 @@ import django_filters +from dal import autocomplete from .models import Category, Question, UserAnswer, Exam +from atlas.models import Condition, Structure, Finding, Presentation #from generic.filters import UserAnswerFilter from django.contrib.auth.models import User @@ -33,9 +35,29 @@ class QuestionFilter(django_filters.FilterSet): exams = django_filters.ModelMultipleChoiceFilter(queryset=get_exams, null_label="No exam") author = django_filters.ModelMultipleChoiceFilter(queryset=get_authors, null_label="No author") category = django_filters.ModelChoiceFilter(queryset=Category.objects.all(),null_label="Uncategorised") + condition = django_filters.ModelMultipleChoiceFilter( + queryset=Condition.objects.all(), + widget=autocomplete.ModelSelect2Multiple(url='atlas:condition-autocomplete'), + label='Condition', + ) + structure = django_filters.ModelMultipleChoiceFilter( + queryset=Structure.objects.all(), + widget=autocomplete.ModelSelect2Multiple(url='atlas:structure-autocomplete'), + label='Structure', + ) + finding = django_filters.ModelMultipleChoiceFilter( + queryset=Finding.objects.all(), + widget=autocomplete.ModelSelect2Multiple(url='atlas:finding-autocomplete'), + label='Finding', + ) + presentation = django_filters.ModelMultipleChoiceFilter( + queryset=Presentation.objects.all(), + widget=autocomplete.ModelSelect2Multiple(url='atlas:presentation-autocomplete'), + label='Presentation', + ) class Meta: model = Question - fields = ("exams", "created_date") + fields = ("exams", "created_date", "condition", "structure", "finding", "presentation") def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None): if not request.user.groups.filter(name="sba_checker").exists():