Improve translatability of range filter value labels

pull/12995/head
Sage Abdullah 2025-04-23 13:08:53 +01:00
rodzic 028997b4e9
commit 0fbb021271
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: EB1A33CC51CC0217
2 zmienionych plików z 16 dodań i 4 usunięć

Wyświetl plik

@ -5,6 +5,8 @@ from django.core.exceptions import ImproperlyConfigured
from django.forms import BoundField, ModelChoiceField from django.forms import BoundField, ModelChoiceField
from django.http import QueryDict from django.http import QueryDict
from django.utils.formats import date_format from django.utils.formats import date_format
from django.utils.translation import gettext as _
from django.utils.translation import gettext_lazy
from wagtail.utils.registry import ObjectTypeRegistry from wagtail.utils.registry import ObjectTypeRegistry
from wagtail.utils.utils import flatten_choices from wagtail.utils.utils import flatten_choices
@ -124,8 +126,12 @@ class ModelMultipleChoiceFilterAdapter(BaseFilterAdapter):
class RangeFilterAdapter(BaseFilterAdapter): class RangeFilterAdapter(BaseFilterAdapter):
# Translators: A placeholder for a range filter value that has not been set,
# e.g. Some number: any - 1000
empty_value_label = gettext_lazy("any")
def format_value(self, value): def format_value(self, value):
return str(value) if value is not None else "" return str(value) if value is not None else self.empty_value_label
def get_active_filters(self): def get_active_filters(self):
start_value_display = self.format_value(self.value.start) start_value_display = self.format_value(self.value.start)
@ -135,7 +141,13 @@ class RangeFilterAdapter(BaseFilterAdapter):
ActiveFilter( ActiveFilter(
self.bound_field.auto_id, self.bound_field.auto_id,
self.filter.label, self.filter.label,
f"{start_value_display} - {end_value_display}", # Translators: A label for a range filter value,
# e.g. Some number: 0 - 1000
_("%(range_start)s - %(range_end)s")
% {
"range_start": start_value_display,
"range_end": end_value_display,
},
self.get_url_without_filter_param( self.get_url_without_filter_param(
[widget.suffixed(self.name, suffix) for suffix in widget.suffixes] [widget.suffixed(self.name, suffix) for suffix in widget.suffixes]
), ),
@ -145,7 +157,7 @@ class RangeFilterAdapter(BaseFilterAdapter):
class DateFromToRangeFilterAdapter(RangeFilterAdapter): class DateFromToRangeFilterAdapter(RangeFilterAdapter):
def format_value(self, value): def format_value(self, value):
return date_format(value) if value is not None else "" return date_format(value) if value is not None else self.empty_value_label
filter_adapter_class_registry = ObjectTypeRegistry() filter_adapter_class_registry = ObjectTypeRegistry()

Wyświetl plik

@ -718,7 +718,7 @@ class TestPageExplorer(WagtailTestUtils, TestCase):
self.assertEqual(page_ids, {self.new_page.id, new_page_child.id}) self.assertEqual(page_ids, {self.new_page.id, new_page_child.id})
self.assertContainsActiveFilter( self.assertContainsActiveFilter(
response, response,
"Date updated: Jan. 1, 2015 -", "Date updated: Jan. 1, 2015 - any",
"latest_revision_created_at_from=2015-01-01", "latest_revision_created_at_from=2015-01-01",
) )