Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Interface

Personnaliser l'interface

Dokos offre plusieurs possibilités pour personnaliser l'interface selon vos besoins spécifiques.

Personnaliser l'interface

Dokos offre plusieurs possibilités pour personnaliser l'interface selon vos besoins spécifiques.

Personnalisations de base

Modifier le thème

  1. Allez dans Paramètres > Apparence
  2. Choisissez un thème parmi les options disponibles
  3. Personnalisez les couleurs primaires et secondaires
  4. Enregistrez vos modifications

Configurer le tableau de bord

  1. Cliquez sur l'icône d'engrenage dans le coin supérieur droit du tableau de bord
  2. Sélectionnez les cartes que vous souhaitez afficher
  3. Réorganisez les cartes par glisser-déposer
  4. Enregistrez votre configuration

Personnalisations avancées

Hooks pour les fichiers

::: dokos

Avec la nouvelle intégration Drive, vous pouvez utiliser le hook after_file_upload pour personnaliser le comportement après l'upload d'un fichier :

# Exemple d'utilisation du hook after_file_upload
def after_file_upload(doc, method):
    """Exemple de hook pour ajouter des métadonnées après upload"""
    # Ajouter une métadonnée personnalisée
    doc.custom_metadata = {
        "uploaded_by": frappe.session.user,
        "upload_date": frappe.utils.nowdate()
    }
    doc.save()

    # Déclencher un workflow personnalisé
    if doc.attached_to_doctype == "Client":
        frappe.enqueue("mon_app.mon_module.creer_tache_client",
                      fichier=doc.name)

Cas d'usage :

  • Ajouter des métadonnées automatiques aux fichiers uploadés
  • Déclencher des workflows spécifiques selon le type de document
  • Notifier des équipes lorsque certains fichiers sont uploadés

Pour implémenter ce hook :

  1. Créez un fichier Python dans votre application personnalisée
  2. Définissez la fonction avec la signature appropriée
  3. Enregistrez le hook dans le fichier hooks.py de votre application :
# hooks.py
doc_events = {
    "File": {
        "after_insert": "mon_app.mon_module.after_file_upload"
    }
}

:::

Personnaliser les vues liste

  1. Allez sur le doctype que vous souhaitez personnaliser
  2. Cliquez sur le menu Actions > Personnaliser
  3. Modifiez les colonnes affichées dans la vue liste
  4. Ajoutez des filtres prédéfinis
  5. Enregistrez votre configuration

Créer des scripts clients

Pour des personnalisations plus avancées, vous pouvez créer des scripts clients :

  1. Allez dans Développement > Script > Nouveau Script Client
  2. Sélectionnez le doctype concerné
  3. Écrivez votre script JavaScript pour modifier le comportement de l'interface
  4. Enregistrez et activez le script

Exemple complet : Personnalisation pour un client

Scénario : La société Maison Verte SARL souhaite que tous les fichiers uploadés pour leurs projets soient automatiquement tagués et qu'une notification soit envoyée à leur responsable de compte.

# hooks.py
doc_events = {
    "File": {
        "after_insert": "maison_verte.maison_verte.doctype.file_hooks.after_file_upload"
    }
}

# file_hooks.py
def after_file_upload(doc, method):
    if doc.attached_to_doctype == "Projet" and doc.attached_to_name:
        projet = frappe.get_doc("Projet", doc.attached_to_name)
        
        # Ajouter un tag si le projet est pour Maison Verte SARL
        if projet.client == "Maison Verte SARL":
            if not doc.tags:
                doc.tags = "maison_verte"
            else:
                doc.tags += ", maison_verte"
            doc.save()
            
            # Envoyer une notification au responsable de compte
            responsable = frappe.db.get_value("Client", "Maison Verte SARL", "account_manager")
            if responsable:
                frappe.sendmail(
                    recipients=[responsable],
                    subject=f"Nouveau fichier ajouté pour le projet {projet.name}",
                    message=f"Un nouveau fichier '{doc.file_name}' a été ajouté au projet {projet.name}."
                )

Bonnes pratiques

  • Testez vos personnalisations : Avant de déployer en production, testez toujours vos modifications dans un environnement de développement
  • Documentez vos changements : Gardez une trace des personnalisations effectuées pour faciliter la maintenance
  • Limitez les scripts clients : Évitez les scripts trop complexes qui pourraient impacter les performances
  • Utilisez les rôles : Restreignez l'accès aux fonctionnalités de personnalisation aux rôles appropriés

::: tip Pour des personnalisations plus complexes, envisagez de créer une application dédiée plutôt que de modifier directement les fichiers du cœur de Dokos. :::