Custom app pour integrer toutes les personnalisations

Bonsoir a tous, j’ai pas mal de bouts de personnalisations a droite et a gauche dans dokos.

Je me demande s il ne serait pas intéressant que je regroupe tout dans une application pour permettre de mieux suivre les évolutions et mieux m y retrouver entre mes personnalisations et les évolutions de dokos.

merci pour vos conseils.

Salut @oryxr,

Les principaux avantages d’une app sont :

  • Utiliser git pour le contrĂ´le de version
  • Mettre en place des tests
  • Pousser plus loin le custom (par ex - accès Ă  toutes les functions python de Frappe, hooks de documents plus avancĂ©s, pouvoir Ă©craser des classes ou mĂ©thodes etc.)
  • Transporter facilement les personnalisations

Au-dela d’une poignée de scripts et champs custom ça me semble une bonne idée oui.

L’inconvénient principal que je vois est que si tu bascules sur le cloud frappe tu ne peux pas installer d’app customs sur les plans les moins cher. J’imagine que c’est similaire sur le cloud dokos mais je laisse la team dokos confirmer/infirmer :wink:

Je te mets quelques infos sur comment procéder ci-dessous.

Champs et propriétés personnalisés

Quand ton bench est en mode develop, Il y a une fonction « Exporter les personnalisations Â» dans le menu Personnaliser des doctype qui te permet de rĂ©cupĂ©rer tes personnalisations pour celui-ci.

Scripts serveur

Il faut créer un ou plusieurs fichier python avec tes scripts puis référencer la function dans le fichier hook.py de l’app (cf doc frappe).

Par exemple

doc_events = {
	"Event": {
		"before_save": [
			"monapp.controllers.event.update_publication",
			"monapp.controllers.event.email_technical_team"
		],
		"after_save": "monapp.controllers.event.sync_item_booking",
	},
	"Quotations": {
		"before_validate": "monapp.controllers.quotation.update_project_event"
	},
}

Scripts clients

Tu peux les référencer dans le fichier hook.py également.

Exemple
doctype_js = {"Sales Order": "public/js/group_order.js"}

Voila dans les grandes lignes !

A plus,
Antoine.

Bonjour,
Je me permet de vous joindre sur cette question.
Pour la table « user Â», j’ai le message « Core DocTypes cannot be customized. Â» et l’onglet formulaire est vide. Je suis en mode dĂ©veloppeur.

Comment faire pour rajouter un champ dans ce cas ?
Merci !
Je me suis abonné à ta chaîne @Antoine_Maas

Merci @pmz !
Je ne pense pas que ce soit possible.

Si tu as besoin d’enregistrer des infos sur une personne tu peux éventuellement customiser le doctype Contact qui est lié à l’utilisateur.

Antoine.

Ok, merci @Antoine_Maas
Ah zut, les utilisateurs importés ou créés par l’admin ne sont pas dans contact.

Bonjour @pmz,

Les personnalisations sont bloquées depuis l’UI pour les types de documents suivants:

core_doctypes_list = (
	"DefaultValue",
	"DocType",
	"DocField",
	"DocPerm",
	"DocType Action",
	"DocType Link",
	"User",
	"Role",
	"Has Role",
	"Page",
	"Module Def",
	"Print Format",
	"Report",
	"Customize Form",
	"Customize Form Field",
	"Property Setter",
	"Custom Field",
	"Client Script",
	"Archived Document",
)

Certains utilisateurs avait apparemment trop poussées les personnalisation au point de rendre l’application inutilisable sans intervention d’un administrateur pour réinitialiser les propriétés des champs…

Par contre, via une application personnalisée, il est toujours possible de les personnaliser en utilisant la méthode indiquée par Corentin ici: Récupération des custom_field - #5 par corentin

Bonne journée

Merci !
Je viens de créer un autre fil spécifique où j’utilise mon app, mais où j’ai un petit problème.