Dokos offre plusieurs outils pour administrer votre instance et assurer son bon fonctionnement. Cette section couvre les fonctionnalités avancées d'administration système, notamment la gestion des applications installées, des tâches planifiées et des permissions.
La gestion des applications installées vous permet d'activer ou de désactiver des applications sans les désinstaller. Cela est particulièrement utile pour tester des fonctionnalités, résoudre des conflits ou mettre temporairement hors service une application sans perdre ses données.
Vous pouvez également activer ou désactiver une application en utilisant les commandes bench suivantes :
# Désactiver une application
bench disable-app [nom_de_l_application]
# Activer une application
bench enable-app [nom_de_l_application]
Exemple :
# Désactiver l'application "webshop"
bench disable-app webshop
# Activer l'application "webshop"
bench enable-app webshop
| Élément | Comportement lorsque l'application est désactivée |
|---|---|
| Types de documents | Masqués dans les recherches et les listes. Les permissions sont ignorées. |
| Pages et espaces de travail | Masqués dans l'interface utilisateur. |
| APIs et méthodes whitelistées | Non accessibles. |
| Tâches planifiées | Suspendues et non exécutées. |
| Hooks | Non exécutés. |
| Champs personnalisés | Masqués dans les formulaires. |
| Paramètres de propriété | Ignorés. |
| Notifications | Non envoyées. |
| Recherche globale | Les types de documents de l'application n'apparaissent pas dans les résultats. |
| Invitations utilisateur | Les types de documents de l'application ne sont pas disponibles pour les permissions. |
| Traductions | Les traductions de l'application ne sont pas chargées. |
Dokos propose des hooks pour exécuter des actions personnalisées avant ou après la désactivation ou l'activation d'une application. Ces hooks sont définis dans le fichier hooks.py de votre application.
| Hook | Description |
|---|---|
| before_disable | Exécuté avant la désactivation de l'application. |
| after_disable | Exécuté après la désactivation de l'application. |
| before_enable | Exécuté avant l'activation de l'application. |
| after_enable | Exécuté après l'activation de l'application. |
Exemple d'utilisation dans hooks.py :
# hooks.py
def before_disable(app_name):
frappe.log(f"L'application {app_name} est sur le point d'être désactivée.")
# Ajoutez ici votre logique personnalisée
def after_disable(app_name):
frappe.log(f"L'application {app_name} a été désactivée.")
# Ajoutez ici votre logique personnalisée
def before_enable(app_name):
frappe.log(f"L'application {app_name} est sur le point d'être activée.")
# Ajoutez ici votre logique personnalisée
def after_enable(app_name):
frappe.log(f"L'application {app_name} a été activée.")
# Ajoutez ici votre logique personnalisée
before_disable et before_enable peuvent annuler l'opération s'ils lèvent une exception.Les tâches planifiées (ou scheduled jobs) permettent d'automatiser des processus récurrents dans Dokos, comme l'envoi de rapports, la synchronisation de données ou la maintenance.
Pour désactiver une tâche planifiée :
Note : Les tâches planifiées associées à une application désactivée sont automatiquement suspendues et ne s'exécutent pas.
Lorsque une application est désactivée, Dokos applique automatiquement des filtres de permissions pour masquer ses types de documents. Voici comment cela fonctionne :
| Problème | Solution |
|---|---|
| Une application ne se désactive pas | Vérifiez que l'application n'a pas de dépendances actives. Utilisez la commande bench list-apps pour vérifier les dépendances. |
| Les tâches planifiées ne s'exécutent pas après une activation | Vérifiez que la tâche planifiée est marquée comme Actif et que l'application est correctement activée. |
| Les pages ou espaces de travail sont toujours visibles après une désactivation | Rafraîchissez la page ou videz le cache de votre navigateur. Si le problème persiste, vérifiez que l'application est bien désactivée dans Applications installées. |
| Les hooks ne s'exécutent pas | Vérifiez que les hooks sont correctement définis dans le fichier hooks.py de l'application et que le nom de l'application est correctement orthographié. |
Les opérations de désactivation et d'activation sont journalisées dans les logs de Dokos. Pour consulter les logs :
Scénario — Maison Verte SARL Le responsable informatique de Maison Verte souhaite tester une nouvelle version de l'application "webshop" sans impacter les utilisateurs. Il décide de désactiver temporairement l'application existante.
Étapes suivies :
- Il ouvre Paramètres > Applications installées.
- Il trouve l'application "webshop" dans le tableau et clique sur Désactiver.
- Il confirme la désactivation dans la boîte de dialogue.
- Il vérifie que les pages et types de documents de l'application ne sont plus visibles dans l'interface.
- Il installe et configure la nouvelle version de l'application.
- Une fois les tests terminés, il réactive l'application "webshop" en cliquant sur Activer.
Résultat : La transition vers la nouvelle version de l'application s'est déroulée sans interruption pour les utilisateurs.
| Commande | Description |
|---|---|
bench list-apps | Liste toutes les applications installées. |
bench disable-app [nom_de_l_application] | Désactive une application. |
bench enable-app [nom_de_l_application] | Active une application. |
bench migrate | Applique les migrations de base de données, y compris l'état des applications désactivées. |