Nouveau type de document : problème avec le lien User

Bonjour,
J’ai besoin d’ajouter de nouveaux champs personnalisés sur les utilisateurs.
Comme il n’est pas possible d’ajouter des champs sur le type de document “User” (refus de l’application), j’ai créé un nouveau type de document.
Dedans, j’ai créé un champ utilisateur de type “Lien” et avec comme option “User”.

Le problème est que je ne vois que les System User et pas les Website User, est-il possible par un autre biais de les avoir ?

Pour moi le plus simple serait d’ajouter des champs personnalisés au type de document “User”, pourquoi est-ce que ce n’est pas possible ?

Yann B.

Bonjour Yann,

Par défaut, la requête permettant de chercher des utilisateurs depuis le Bureau filtre uniquement les utilisateurs de type “Utilisateur Système”.
Pour contourner ce comportement, il faut ajouter un script client, et metttre le filtre suivant dans l’événement setup (ou refresh):

frappe.ui.form.on('Nom du doctype', {
	setup: function(frm) {
		frm.set_query("user", function() {
			return {
				query: "frappe.core.doctype.user.user.user_query",
				filters: {
					ignore_user_type: 1
				}
			}
		});
      }
});

En ce qui concerne la raison pour laquelle les personnalisations ne sont pas autorisées dans le type de document User, la seule info que j’ai pu trouver est ce ticket: Allow User doctype in Customize Form by KanchanChauhan · Pull Request #3806 · frappe/frappe · GitHub

La règle est qu’il existe une liste de types de document Core qui ne peuvent pas être modifiés:

"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",

Il est toujours possible de créer un “Custom Field” (Champ personnalisé) ou “Property Setter” (Propriété personnalisée) sans passer par la page “Personnaliser un formulaire”, mais il faut vraiment savoir ce que vous faites.

Bonne journée !