Exportation de personalisation de formulaires

Bonjour :waving_hand: ,

J’ai encore une question :sweat_smile: qui est la suite de ce post. je préfère en ouvrir un nouveau pour plus de clarté.

Tout d’abord quelques informations techniques:

  • Dokos est installé via des conteneurs Docker, défini par le fichier compose.yml du dépôt Gitlab dokos/dodock
  • Version de l’image utilisée: 4.68.1
  • OS hôte de Docker: Debian 12

Contexte:

J’ai personnalisé les formulaires de :

  • Articles
  • Factures d’achats
  • factures de vente
  • Article de la facture d’achat
  • Articles de la facture de vente

Je me suis contenté de masquer des champs, sections et onglets qui ne sont pas utiles pour l’usage que l’on veut en faire et de déplacer des champs et sections dans le formulaire. Je n’ai créé aucun champ personnalisé autre que des nouvelles sections.

J’ai effectué cette tâche dans une machine virtuelle qui n’est pas le serveur de production final.

Je voudrais exporter cette configuration pour trois raisons:

  1. L’importer sur l’instance de production
  2. L’importer sur des nouvelles instances. Pour le moment, on aurait besoin de deux instances distinctes.
  3. Avoir une sauvegarde en cas de défaillance du serveur

Nous ne savons pas encore si nous voulons nous héberger nous-mêmes ou se faire héberger par dokos.io

Méthodes essayées

A. Créer un paquet pour pouvoir le réimporter dans d’autres instances:

  1. Créer un nouveau paquet, lui donner un nom, une description et une licence
  2. Afficher la liste des ModDef
  3. Sélectionner le module qui m’intéresse (Custom)
  4. Modifier, choisir le champ paquet et sélectionner le nom du paquet créé précédemment
  5. Créer une publication du paquet
  6. Télécharger le fichier

Le fichier fait 1.1ko et quand je le décompresse, le JSON est vide hormis les quelques informations du paquets. Je peux choisir d’autres modules, le résultats est le même.

B. Créer une application personalisée

  1. Depuis le conteneur backend: docker compose exec backend bash :
    1. bench new-app dokos-simple-view
    2. éditer le fichier dokos_simple_view/dokos_simple_view/hooks.py pour définir les fixtures à exporter
    3. bench export'-fixtures
    4. Le résultat est visible dans ce git
  2. Créer un nouveau conteneur dokos
  3. Depuis le conteneur backend de la nouvelle instance:
    1. bench get-app amgb/dokos-simple-view - Forgejo
    2. bench –site frontend install-app dokos_simple_view

J’obtiens une erreur car je ne suis pas en mode développeur.

Questions :

  1. Comment être en mode développeur dans une instance Docker ? J’ai essayé: bench set-config developper_mode 1 dans le backend, puis docker compose restart
  2. Est-ce que la méthode B. est viable ? Notamment en terme de mise à jour ? Il faudrait bien évidemment pouvoir désactiver le mode développeur pour la production.
  3. Quelle est la bonne procédure pour la méthode A ?
  4. :backhand_index_pointing_right: Au final, comment faire pour exporter la personnalisation des formulaires ?

J’ai lu pas mal de doc sur frappe/erpnext et parcouru le forum, mais il me semble que c’est un problème spécifique à Dokos.

Merci de m’avoir lu :grinning_face:

Bonjour @amgb,

Pour la création de paquet, j’ai l’impression qu’il manque simplement la liaison entre les personnalisations et le module Custom.

Voici le test que je viens de faire dans la démo (Dokos):

  1. Création d’un paquet TestPackage: Dokos
    Bien renseigner la section Lisez-moi sinon ça empêche l’export. Il faut qu’on corrige.
  2. Création d’un module AppTest lié au paquet TestPackage: Dokos
  3. Masquage d’un champ dans la fiche client
  4. Liaison de la propriété personnalisée créée en 3. avec le module AppTest
  5. Export du paquet
  6. Import dans l’autre site de démo: Dokos

=> Quand on fait des personnalisations, le logiciel crée deux types de données:

  • Propriété personnalisée
  • Champ personnalisé

Il faut bien lier les données qu’on souhaite exporter avec le module correspondant pour que l’export de paquet fonctionne.
C’est vrai également pour les types de documents personnalisés qu’on crée.

La seconde méthode - application personnalisée - est plus robuste, donc plus recommandée.
Je ne comprends pas pourquoi le système mets une erreur à l’installation de l’application car ça ne devrait pas être lié au mode développeur. Ce serait intéressant d’avoir l’erreur exacte.

Cependant, pour un déploiement Docker, il est recommandé d’installer l’application lors de la construction d’une image dédiée pour éviter de modifier l’instance Docker.

Voici une documentation pour construire ses propres images Docker avec des applications personnalisées:
https://doc.dokos.io/dodock/installation/plus/docker-personnalise

Bonne fin de journée !

Merci pour cette réponse claire. Effectivement, pour pouvoir exporter mes personnalisations, il faut bien relier au module créé pour l’occasion les champs personnalisés et les propriétés personnalisées.

Pour le faire, séléctionner les éléments dans la liste, –> modifier –> choisir le champs module –> sélectionner le module créé précédemment.

Puis créer une publication du paquet

Concernant l’application personnalisée, je n’ai pas retesté pour le moment.