Référence des hooks
Référence des hooks
Un hook est une variable du fichier hooks.py d'une application. Dodock lit les hooks de toutes les applications installées avec frappe.get_hooks(). Cette page décrit les hooks propres à Dodock. Pour les hooks standard de Frappe (doc_events, scheduler_events, after_build, has_permission, permission_query_conditions…), voir la documentation des hooks de Frappe (en anglais).
never_skip_patches
Avec bench migrate --skip-failing, Dodock enregistre un correctif qui échoue dans le Journal de Patch comme ignoré, puis passe aux correctifs suivants. Un correctif listé dans never_skip_patches n'est jamais ignoré : s'il échoue, la migration s'arrête.
Chaque entrée est le chemin du correctif tel qu'il figure dans le fichier patches.txt de l'application.
# mon_app/hooks.py
never_skip_patches = [
"mon_app.patches.v5_0.restructurer_ecritures_comptables",
]
Exemple : le correctif restructurer_ecritures_comptables réécrit les écritures d'une société. L'ignorer laisserait la comptabilité dans un état incohérent. Avec ce hook, si le correctif échoue pendant bench migrate --skip-failing, la migration s'arrête. L'administrateur corrige la cause, puis relance la migration.
Réservez ce hook aux correctifs dont l'échec rend les données incohérentes.
Hooks standard les plus utilisés
Ces hooks viennent de Frappe. Leur nom exact est vérifié dans le code de Dodock ; leur détail est dans la documentation de Frappe (en anglais).
| Hook | Usage |
|---|---|
doc_events | Appeler une fonction aux événements d'un type de document (validate, on_update, on_submit, on_cancel, on_trash…) |
scheduler_events | Tâches planifiées (daily, hourly, weekly, cron…) |
override_doctype_class | Remplacer la classe Python d'un type de document |
extend_doctype_class | Ajouter des méthodes à la classe Python d'un type de document, sans la remplacer. Plusieurs applications peuvent étendre la même classe |
override_whitelisted_methods | Remplacer une méthode appelable par l'API |
doctype_js, doctype_list_js, doctype_tree_js, doctype_calendar_js | Ajouter du JavaScript au formulaire, à la liste, à l'arborescence ou au calendrier d'un type de document |
boot_session | Ajouter des données à la session chargée au démarrage du bureau |
on_login, on_logout | Réagir à la connexion et à la déconnexion |
before_request, after_request | Exécuter du code avant et après chaque requête HTTP |
before_migrate, after_migrate | Exécuter du code avant et après bench migrate |
after_install, after_app_install, before_app_uninstall | Réagir à l'installation de l'application, à l'installation d'une autre application, à la désinstallation |
Autres hooks documentés
- Hooks de routage par unité économique : le routage des factures électroniques d'E-transactions.