Projet

Général

Profil

Bug #35800

import csv et champ date

Ajouté par Frédéric Péters il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
04 septembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à Authentic 2 - Development #10606: add support for date attributesFermé10 avril 2016

Actions
Lié à Authentic 2 - Development #32833: interface de création d'utilisateurs en masse via un CSVFermé06 mai 2019

Actions

Révisions associées

Révision 6a3a1c3e (diff)
Ajouté par Nicolas Roche il y a plus de 4 ans

csv_import: import cleaned fields (#35800)

Historique

#2

Mis à jour par Nicolas Roche il y a plus de 4 ans

  • Assigné à mis à Nicolas Roche
#3

Mis à jour par Nicolas Roche il y a plus de 4 ans

#4

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é
#5

Mis à jour par Nicolas Roche il y a plus de 4 ans

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

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.

#7

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)
#8

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
#9

Mis à jour par Nicolas Roche il y a plus de 4 ans

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

#10

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.

#11

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é.

Formats disponibles : Atom PDF