Enhance CaseFilter to show distinct examination values for series, improving clarity in selection options
This commit is contained in:
+6
-1
@@ -2,6 +2,7 @@ import django_filters
|
|||||||
from django import forms
|
from django import forms
|
||||||
from crispy_forms.helper import FormHelper
|
from crispy_forms.helper import FormHelper
|
||||||
from crispy_forms.layout import Layout, Div, Field
|
from crispy_forms.layout import Layout, Div, Field
|
||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
from .models import (
|
from .models import (
|
||||||
Case,
|
Case,
|
||||||
@@ -98,8 +99,12 @@ class CaseFilter(django_filters.FilterSet):
|
|||||||
author = django_filters.ModelMultipleChoiceFilter(
|
author = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=get_authors, null_label="No author"
|
queryset=get_authors, null_label="No author"
|
||||||
)
|
)
|
||||||
|
# Show a distinct list of `Series.examination` values instead of raw Series
|
||||||
|
# entries so examinations that differ only by plane/description appear once.
|
||||||
series = django_filters.ModelMultipleChoiceFilter(
|
series = django_filters.ModelMultipleChoiceFilter(
|
||||||
queryset=get_series, null_label="No series"
|
field_name='series__examination',
|
||||||
|
queryset=lambda request: __import__('generic.models', fromlist=['Examination']).Examination.objects.filter(atlas_series_examination__isnull=False).distinct(),
|
||||||
|
label='Examination',
|
||||||
)
|
)
|
||||||
differential_case = django_filters.ModelMultipleChoiceFilter(
|
differential_case = django_filters.ModelMultipleChoiceFilter(
|
||||||
label="Differential",
|
label="Differential",
|
||||||
|
|||||||
Reference in New Issue
Block a user