Bug #35800
import csv et champ date
0%
Description
Traceback (most recent call last): File "/home/fred/src/eo/authentic/src/authentic2/manager/user_import.py", line 230, in thread_worker simulate=simulate) File "/home/fred/src/eo/authentic/src/authentic2/csv_import.py", line 310, in run action() File "/home/fred/src/eo/authentic/src/authentic2/csv_import.py", line 294, in do_import if not self.do_import_row(row, unique_map): File "/home/fred/src/eo/venv1.11/local/lib/python2.7/site-packages/django/utils/decorators.py", line 185, in inner return func(*args, **kwargs) File "/home/fred/src/eo/authentic/src/authentic2/csv_import.py", line 594, in do_import_row setattr(attributes, cell.header.name, cell.value) File "/home/fred/src/eo/authentic/src/authentic2/custom_user/models.py", line 69, in __setattr__ self.values[name] = attribute.set_value(self.owner, value, verified=bool(self.verified)) File "/home/fred/src/eo/authentic/src/authentic2/models.py", line 230, in set_value content = serialize(value) File "/home/fred/src/eo/authentic/src/authentic2/attribute_kinds.py", line 218, in <lambda> 'serialize': lambda x: x.isoformat(), AttributeError: 'unicode' object has no attribute 'isoformat'
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Lié à Development #10606: add support for date attributes ajouté
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Lié à Development #32833: interface de création d'utilisateurs en masse via un CSV ajouté
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Fichier 0001-csv_import-import-validated-date-field-35800.patch 0001-csv_import-import-validated-date-field-35800.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Aie, par fainéantise j'ai complété le test de Benjamin,
mais ce que je crains le plus c'est la réaction de mon DPO.
A l'import on plante sur (authentic2/attribute_kinds.py
) :
DEFAULT_ATTRIBUTE_KINDS = [ { 'name': 'birthdate', ... 'serialize': lambda x: x.isoformat(), ... },
parce qu'on a une string sous la main (à priori, on attend une variable de
type date).
Dans ce patch, j'ai utilisé les champs validés pour construire la cellule.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Je ne sais plus pourquoi j'ai utilisé data plutôt que cleaned_data; je retrouverai peut-être un jour, tant que tu ajoutes des tests tu peux aussi ajouter phone number, french postcode et title, avec des cas non passant si possible, mais c'est pas une obligation je valide sans.
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 6a3a1c3ebe33b67a5eec63c01771beb356a36b45 Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Thu Sep 12 16:59:37 2019 +0200 csv_import: import cleaned fields (#35800)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Fichier 0001-csv_import-import-validated-date-field-35800.patch 0001-csv_import-import-validated-date-field-35800.patch ajouté
- Statut changé de Solution déployée à Solution proposée
mea-culpa, j'ai oublié de fournir le patch des tests demandés.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Go, pour l'ajout de tests pas de relecture nécessaire.
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Statut changé de Solution validée à Solution déployée
Arf, j'ai encore tout embrouillé.
En fait comme tu m'as validé et suggéré d'ajouter des tests, j'ai poussé avec un test plus complet.
Ensuite, comme on a échangé sur ce ticket par mail, j'ai précisé ici le patch correspondant à ce que j'ai poussé.
csv_import: import cleaned fields (#35800)