56 lines
1.3 KiB
Python
56 lines
1.3 KiB
Python
from wagtail.contrib.modeladmin.options import (
|
|
ModelAdmin,
|
|
ModelAdminGroup,
|
|
modeladmin_register,
|
|
)
|
|
from wagtail import hooks
|
|
|
|
from .models import BasicKnowledge, InstrumentCategory, InstrumentType
|
|
from django.utils.translation import gettext_lazy as _
|
|
from core.logger import get_logger
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
class InstrumentAdmin(ModelAdmin):
|
|
model = BasicKnowledge
|
|
list_display = ("title", "new_type", "status_string")
|
|
search_fields = ("title", "new_type__name")
|
|
|
|
|
|
class InstrumentCategoryAdmin(ModelAdmin):
|
|
model = InstrumentCategory
|
|
list_display = ("name", "background", "foreground")
|
|
|
|
|
|
class InstrumentTypeAdmin(ModelAdmin):
|
|
model = InstrumentType
|
|
list_display = (
|
|
"name",
|
|
"category",
|
|
)
|
|
inspect_view_enabled = True
|
|
inspect_view_fields = (
|
|
"name",
|
|
"category",
|
|
"instruments",
|
|
)
|
|
|
|
|
|
class InstrumentGroup(ModelAdminGroup):
|
|
menu_label = _("Instruments")
|
|
items = (
|
|
InstrumentAdmin,
|
|
InstrumentTypeAdmin,
|
|
InstrumentCategoryAdmin,
|
|
)
|
|
|
|
|
|
modeladmin_register(InstrumentGroup)
|
|
|
|
|
|
@hooks.register("construct_page_chooser_queryset")
|
|
def order_by_created(pages, request):
|
|
logger.debug("constructing page chooser queryset")
|
|
return pages.all().order_by("-latest_revision_created_at")
|