add a new button in the index of the page wagtail code example
Example 1: add a new button in the index of the page wagtail
class ProductAdmin(ProductModelAdmin):
model = Product
button_helper_class = ProductButtonHelper
Example 2: add a new button in the index of the page wagtail
from wagtail.contrib.modeladmin.helpers import ButtonHelper
class ProductButtonHelper(ButtonHelper):
view_button_classnames = ['button-small', 'icon', 'icon-site']
def view_button(self, obj):
text = 'View {}'.format(self.verbose_name)
return {
'url': obj.get_absolute_url(),
'label': text,
'classname': self.finalise_classname(self.view_button_classnames),
'title': text,
}
def get_buttons_for_obj(self, obj, exclude=None, classnames_add=None, classnames_exclude=None):
"""
This function is used to gather all available buttons.
We append our custom button to the btns list.
"""
btns = super().get_buttons_for_obj(obj, exclude, classnames_add, classnames_exclude)
if 'view' not in (exclude or []):
btns.append(
self.view_button(obj)
)
return btns
Example 3: add a new button in the index of the page wagtail
from django.contrib.admin import ModelAdmin
class ProductAdmin(ModelAdmin):
model = Product