from django.utils.translation import gettext_lazy as _ from wagtail.admin.ui.tables import Column, DateColumn from wagtail.admin.ui.tables.pages import PageStatusColumn, PageTitleColumn from wagtail.admin.viewsets.pages import PageListingViewSet from associations.models import AssociationPage from dnscms.admin import ListingRedirectChooseParentView class AssociationTypeColumn(Column): def get_value(self, instance): return instance.get_association_type_display() class AssociationChooseParentView(ListingRedirectChooseParentView): listing_url_name = "associations:index" class AssociationPageListingViewSet(PageListingViewSet): model = AssociationPage choose_parent_view_class = AssociationChooseParentView icon = "group" menu_label = _("Associations") menu_order = 2 add_to_admin_menu = True ordering = "title" columns = [ PageTitleColumn("title", label=_("Title"), sort_key="title", classname="title"), AssociationTypeColumn( "association_type", label=_("Type"), sort_key="association_type", width="15%", ), DateColumn( "latest_revision_created_at", label=_("Updated"), sort_key="latest_revision_created_at", width="10%", ), PageStatusColumn("status", label=_("Status"), sort_key="live", width="10%"), ] association_page_listing_viewset = AssociationPageListingViewSet("associations")