Import utilisateur : adresse email invalide

Bonjour,

Je teste la fonction d’import d’utilisateur mais il semble qu’il y ait un problème. Que j’essaie d’importer en CSV ou excel, j’obtiens toujours le même message d’erreur au format : " <valeur de ID> n’est pas une adresse email valide."

Pourtant, je mappe bien les champs et les colonnes au bon endroit (je n’ai pas mélangé ID avec email par exemple)

Mon test d’import n’est pas très compliqué je n’ai pris que les champs nécessaires : ID, email et prénom.

voici un exemple de message d’erreur avec traceback:

Bonjour @gde,

Le champ ID sert à identifier une donnée déjà présente dans Dokos.
Lorsque vous créez un nouveau document, celui-ci n’a pas encore d’identifiant, vous ne pouvez donc pas connaître son ID: il faut laisser ce champ vide et Dokos créera un identifiant (appelé ensuite Nom)

Pour récapituler:

  1. Si vous créez de nouvelles données, laissez le champ ID vide pour que Dokos génère un identifiant en fonction de la règle de nommage du document

  2. Si vous mettez à jour des données, indiquez l’identifiant du document à mettre à jour

Si vous vous demandez pourquoi le champ ID est présent dans le modèle que vous avez téléchargé, c’est simplement parce que le modèle d’import est le même qu’on crée de nouvelles données ou qu’on mette à jour des données existantes.

Bonne journée

1 « J'aime »

Merci beaucoup pour cette réponse.

C’est effectivement marqué comme tel dans la documentation et je n’ai pas fait attention ; et le template m’a induit en erreur effectivement :confused:

Mais malheureusement je n’ai pas rĂ©ussi non plus après avoir vidĂ©e la colonne ID, cette fois-ci j’obtiens une erreur AttributeError: ‹ NoneType â€ş object has no attribute ‹ encode â€ş

J’ai fait plusieurs essai : en mettant les valeur vide, en mettant des quote vide, en supprimant la colonne ID. Mais j’obtiens toujours ce message.

Mon fichier est bien encodé en UTF-8.

Après, j’ai bien réussi à importer pour faire une mise à jour d’enregistrement existant… c’est déjà ça :stuck_out_tongue:

Traceback

Traceback (most recent call last):
File « apps/frappe/frappe/core/doctype/data_import/importer.py Â», line 146, in import_data
doc = self.process_doc(doc)
File « apps/frappe/frappe/core/doctype/data_import/importer.py Â», line 239, in process_doc
return self.insert_record(doc)
File « apps/frappe/frappe/core/doctype/data_import/importer.py Â», line 258, in insert_record
new_doc.insert()
File « apps/frappe/frappe/model/document.py Â», line 286, in insert
self.run_post_save_methods()
File « apps/frappe/frappe/model/document.py Â», line 1131, in run_post_save_methods
self.run_method(« on_update Â»)
File « apps/frappe/frappe/model/document.py Â», line 964, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File « apps/frappe/frappe/model/document.py Â», line 1331, in composer
return composed(self, method, *args, **kwargs)
File « apps/frappe/frappe/model/document.py Â», line 1313, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File « apps/frappe/frappe/model/document.py Â», line 961, in fn
return method_object(*args, **kwargs)
File « apps/frappe/frappe/core/doctype/user/user.py Â», line 134, in on_update
self.send_password_notification(self.__new_password)
File « apps/frappe/frappe/core/doctype/user/user.py Â», line 291, in send_password_notification
self.send_welcome_mail_to_user()
File « apps/frappe/frappe/core/doctype/user/user.py Â», line 367, in send_welcome_mail_to_user
self.send_login_mail(
File « apps/frappe/frappe/core/doctype/user/user.py Â», line 411, in send_login_mail
frappe.sendmail(
File « apps/frappe/frappe/init.py Â», line 701, in sendmail
builder.process(send_now=now)
File « apps/frappe/frappe/email/doctype/email_queue/email_queue.py Â», line 661, in process
queue_data = self.as_dict(include_recipients=False)
File « apps/frappe/frappe/email/doctype/email_queue/email_queue.py Â», line 702, in as_dict
mail = self.prepare_email_content()
File « apps/frappe/frappe/email/doctype/email_queue/email_queue.py Â», line 628, in prepare_email_content
sender=self.sender,
File « apps/frappe/frappe/email/doctype/email_queue/email_queue.py Â», line 524, in sender
return email_account.default_sender
File « apps/frappe/frappe/email/doctype/email_account/email_account.py Â», line 281, in default_sender
return email.utils.formataddr((self.name, self.get(« email_id Â»)))
File « /usr/local/lib/python3.10/email/utils.py Â», line 91, in formataddr
address.encode(‹ ascii â€ş)
AttributeError: ‹ NoneType â€ş object has no attribute ‹ encode â€ş

Bonjour @gde,

J’ai l’impression que le problème ne vient pas de l’import, mais de la tentative d’envoi d’email qui suit la création d’un nouvel utilisateur.
Essayez de faire votre import en mettant 0 dans la colonne Envoyer un Email de Bienvenue
Sinon vérifiez que vous avez bien un compte d’envoi d’email par défaut correctement configuré.

Bonne journée

1 « J'aime »

Bonsoir,

J’ai réussi a importer les utilisateurs après avoir rajouté la colonne Envoyer un Email de Bienvenue dans mon fichier CSV et en mettant 0.

Merci pour l’aide !