wagtail-bakerydemo/bakerydemo/base/wagtail_hooks.py

77 wiersze
2.3 KiB
Python

from wagtail.contrib.modeladmin.options import (
ModelAdmin,
ModelAdminGroup,
modeladmin_register,
)
from bakerydemo.base.models import FooterText, Person
from bakerydemo.breads.models import BreadIngredient, BreadType, Country
"""
N.B. To see what icons are available for use in Wagtail menus and StreamField block types,
enable the styleguide in settings:
INSTALLED_APPS = (
...
'wagtail.contrib.styleguide',
...
)
or see https://thegrouchy.dev/general/2015/12/06/wagtail-streamfield-icons.html
This demo project includes the full font-awesome set via CDN in base.html, so the entire
font-awesome icon set is available to you. Options are at https://fontawesome.com/icons .
"""
class BreadIngredientAdmin(ModelAdmin):
# These stub classes allow us to put various models into the custom "Wagtail Bakery" menu item
# rather than under the default Snippets section.
model = BreadIngredient
search_fields = ("name",)
class BreadTypeAdmin(ModelAdmin):
model = BreadType
search_fields = ("title",)
class BreadCountryAdmin(ModelAdmin):
model = Country
search_fields = ("title",)
class BreadModelAdminGroup(ModelAdminGroup):
menu_label = "Bread Categories"
menu_icon = "fa-suitcase" # change as required
menu_order = 200 # will put in 3rd place (000 being 1st, 100 2nd)
items = (BreadIngredientAdmin, BreadTypeAdmin, BreadCountryAdmin)
class PersonModelAdmin(ModelAdmin):
model = Person
menu_label = "People" # ditch this to use verbose_name_plural from model
menu_icon = "fa-users" # change as required
list_display = ("first_name", "last_name", "job_title", "thumb_image")
list_filter = ("job_title",)
search_fields = ("first_name", "last_name", "job_title")
inspect_view_enabled = True
class FooterTextAdmin(ModelAdmin):
model = FooterText
search_fields = ("body",)
class BakeryModelAdminGroup(ModelAdminGroup):
menu_label = "Bakery Misc"
menu_icon = "fa-cutlery" # change as required
menu_order = 300 # will put in 4th place (000 being 1st, 100 2nd)
items = (PersonModelAdmin, FooterTextAdmin)
# When using a ModelAdminGroup class to group several ModelAdmin classes together,
# you only need to register the ModelAdminGroup class with Wagtail:
modeladmin_register(BreadModelAdminGroup)
modeladmin_register(BakeryModelAdminGroup)