kopia lustrzana https://github.com/wagtail/bakerydemo
77 wiersze
2.3 KiB
Python
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)
|