Closes #20332: Add a "none" option to object tag filters

This commit is contained in:
Jeremy Stretch
2025-09-29 16:38:04 -04:00
parent bfd1adf0b5
commit c0773a7036

View File

@@ -1,6 +1,7 @@
import json import json
from django import forms from django import forms
from django.conf import settings
from django.db.models import Count from django.db.models import Count
from django.forms.fields import JSONField as _JSONField, InvalidJSONInput from django.forms.fields import JSONField as _JSONField, InvalidJSONInput
from django.templatetags.static import static from django.templatetags.static import static
@@ -74,7 +75,8 @@ class TagFilterField(forms.MultipleChoiceField):
count=Count('extras_taggeditem_items') count=Count('extras_taggeditem_items')
).order_by('name') ).order_by('name')
return [ return [
(str(tag.slug), '{} ({})'.format(tag.name, tag.count)) for tag in tags (settings.FILTERS_NULL_CHOICE_VALUE, settings.FILTERS_NULL_CHOICE_LABEL), # "None" option
*[(str(tag.slug), f'{tag.name} ({tag.count})') for tag in tags]
] ]
# Choices are fetched each time the form is initialized # Choices are fetched each time the form is initialized