Add a LocaleColumn

pull/12917/head
zerolab 2025-02-22 19:07:15 +00:00 zatwierdzone przez Sage Abdullah
rodzic a2323d5662
commit cbeb97ad3b
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: EB1A33CC51CC0217
1 zmienionych plików z 25 dodań i 1 usunięć

Wyświetl plik

@ -13,7 +13,8 @@ from django.utils.text import capfirst
from django.utils.translation import gettext, gettext_lazy from django.utils.translation import gettext, gettext_lazy
from wagtail.admin.ui.components import Component from wagtail.admin.ui.components import Component
from wagtail.coreutils import multigetattr from wagtail.coreutils import get_locales_display_names, multigetattr
from wagtail.models import Locale
class BaseColumn(metaclass=MediaDefiningClass): class BaseColumn(metaclass=MediaDefiningClass):
@ -305,6 +306,29 @@ class LiveStatusTagColumn(StatusTagColumn):
) )
class LocaleColumn(StatusTagColumn):
"""Represents a Locale tag."""
def __init__(self, **kwargs):
super().__init__(
"locale_id",
label=kwargs.pop("label", gettext("Locale")),
sort_key=kwargs.pop("sort_key", "locale"),
primary=False,
**kwargs,
)
def get_cell_context_data(self, instance, parent_context):
context = super().get_cell_context_data(instance, parent_context)
value = self.get_value(instance)
if isinstance(value, int):
value = get_locales_display_names().get(value)
elif isinstance(value, Locale):
value = value.get_display_name()
context["value"] = value
return context
class DateColumn(Column): class DateColumn(Column):
"""Outputs a date in human-readable format""" """Outputs a date in human-readable format"""