Ajouter une action sur un type de page uniquement avec wagtail
Wagtail permet de customiser à souhait son interface, il est possible de rajouter une action sur un type de page spécifique.
On suppose qu'on dispose du modèle EventPage
, héritant de Page
:
# models.py
pass
Pour rajouter une action, celle-ci s'encode dans le fichier
wagtail_hooks.py
.
On crée une classe héritant de ActionMenuItem
, et qui renverra une
url.
# wagtail_hooks.py
=
=
=
return
Définir le classe ne suffit pas, il faut la rajouter à la liste des
action_menu
:
# wagtail_hooks.py
return
Le problème est que l'action apparaît sur toutes les pages, on va
modifier ce comportement via le hooks construct_page_action_menu
: on
filtre la liste de menu_items
, on n'affiche que ceux dont le nom n'est
pas show-event
, qui est le nom de notre classe ShowEvent
définie
plus haut.
# wagtail_hooks.py
=
=