Project

General

Profile

Bug #35800

import csv et champ date

Added by Frédéric Péters 5 months ago. Updated 4 months ago.

Status:
Solution déployée
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
04 Sep 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

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'

0001-csv_import-import-validated-date-field-35800.patch View (3.28 KB) Nicolas Roche, 11 Sep 2019 05:55 PM

0001-csv_import-import-validated-date-field-35800.patch View (5.56 KB) Nicolas Roche, 20 Sep 2019 01:41 PM


Related issues

Related to Authentic 2 - Development #10606: add support for date attributes Fermé 10 Apr 2016
Related to Authentic 2 - Development #32833: interface de création d'utilisateurs en masse via un CSV Solution déployée 06 May 2019

Associated revisions

Revision 6a3a1c3e (diff)
Added by Nicolas Roche 4 months ago

csv_import: import cleaned fields (#35800)

History

#2 Updated by Nicolas Roche 4 months ago

  • Assignee set to Nicolas Roche

#3 Updated by Nicolas Roche 4 months ago

#4 Updated by Nicolas Roche 4 months ago

  • Related to Development #32833: interface de création d'utilisateurs en masse via un CSV added

#5 Updated by Nicolas Roche 4 months ago

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.

#6 Updated by Benjamin Dauvergne 4 months ago

  • Status changed from Solution proposée to 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.

#7 Updated by Nicolas Roche 4 months ago

  • Status changed from Solution validée to 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)

#8 Updated by Frédéric Péters 4 months ago

  • Status changed from Résolu (à déployer) to Solution déployée

#9 Updated by Nicolas Roche 4 months ago

mea-culpa, j'ai oublié de fournir le patch des tests demandés.

#10 Updated by Benjamin Dauvergne 4 months ago

  • Status changed from Solution proposée to Solution validée

Go, pour l'ajout de tests pas de relecture nécessaire.

#11 Updated by Nicolas Roche 4 months ago

  • Status changed from Solution validée to 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é.

Also available in: Atom PDF