Développeurs

Référence des hooks

Hooks propres à Dodock déclarés dans le fichier hooks.py d'une application : never_skip_patches.

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).

HookUsage
doc_eventsAppeler une fonction aux événements d'un type de document (validate, on_update, on_submit, on_cancel, on_trash…)
scheduler_eventsTâches planifiées (daily, hourly, weekly, cron…)
override_doctype_classRemplacer la classe Python d'un type de document
extend_doctype_classAjouter des méthodes à la classe Python d'un type de document, sans la remplacer. Plusieurs applications peuvent étendre la même classe
override_whitelisted_methodsRemplacer une méthode appelable par l'API
doctype_js, doctype_list_js, doctype_tree_js, doctype_calendar_jsAjouter du JavaScript au formulaire, à la liste, à l'arborescence ou au calendrier d'un type de document
boot_sessionAjouter des données à la session chargée au démarrage du bureau
on_login, on_logoutRéagir à la connexion et à la déconnexion
before_request, after_requestExécuter du code avant et après chaque requête HTTP
before_migrate, after_migrateExécuter du code avant et après bench migrate
after_install, after_app_install, before_app_uninstallRéagir à l'installation de l'application, à l'installation d'une autre application, à la désinstallation

Autres hooks documentés