Projet

Général

Profil

Development #30103

Export csv - mauvaise gestion des attributs

Ajouté par Emmanuel Cazenave il y a plus de 5 ans. Mis à jour il y a environ 5 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Catégorie:
-
Version cible:
-
Début:
25 janvier 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Suite à #30091 on se retrouve avec :

Internal Server Error: /manage/users/export/csv/
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/dist-packages/django/contrib/auth/decorators.py", line 22, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/authentic2/manager/views.py", line 126, in dispatch
    return super(PermissionMixin, self).dispatch(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/authentic2/manager/views.py", line 178, in dispatch
    return super(SearchFormMixin, self).dispatch(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 89, in dispatch
    return handler(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/authentic2/manager/views.py", line 364, in get
    content = getattr(self.get_dataset(), export_format)
  File "/usr/lib/python2.7/dist-packages/authentic2/manager/user_views.py", line 361, in get_dataset
    user_attrs[av['object_id']][at_mapping[av['attribute_id']].name] = av['content']
KeyError: 5

Fichiers


Demandes liées

Lié à Authentic 2 - Bug #30113: Le manager de AttributeValue devrait filtrer comme le manager par défaut d'AttributeNouveau25 janvier 2019

Actions

Révisions associées

Révision 870bc650 (diff)
Ajouté par Emmanuel Cazenave il y a plus de 5 ans

user export csv : exclude disabled attributes (#30103)

Historique

#1

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Emmanuel Cazenave
  • Priorité changé de Normal à Haut

Des utilisateurs qui ont un attribut pour lequel n'existe plus la définition de l'attribut.

Mais que fait la police des attributs ?

#2

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

Emmanuel Cazenave a écrit :

Des utilisateurs qui ont un attribut pour lequel n'existe plus la définition de l'attribut.

Des attributs désactivés.

#3

Mis à jour par Serghei Mihai il y a plus de 5 ans

Yep:

    objects = managers.AttributeManager(disabled=False)
    all_objects = managers.AttributeManager()

Donc quand on fait un appel au manager par défaut on n'a que les attributs actifs.
Je serais pour inverser la logique:

    objects = managers.AttributeManager()
    active_objects = managers.AttributeManager(disabled=False)

ça évitera les oublis quand on travaille avec les attributs. Mais je ne mésure par l'impact sur le reste.

#4

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

Je dirai que les attributs désactivés on ne les exporte pas, ne pas changer le code dans models.py pour ce problème.

#5

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

Et donc at_mapping = {a.id: a for a in Attribute.objects.all()} qui ne sort que les attributs actifs, parce qu'il y a un filtre intégré au manager,
mais pas la même chose sur le manager de AttributeValue donc boum.

Je filtre en SQL, plutôt que de rajouter un if, pas de changement de performance notable.

#6

Mis à jour par Serghei Mihai il y a plus de 5 ans

  • Statut changé de Solution proposée à Solution validée
#7

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

  • Lié à Bug #30113: Le manager de AttributeValue devrait filtrer comme le manager par défaut d'Attribute ajouté
#8

Mis à jour par Emmanuel Cazenave il y a environ 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 870bc65026a55c0b1c011a9b23d2b5e575ea5ce3
Author: Emmanuel Cazenave <ecazenave@entrouvert.com>
Date:   Fri Jan 25 15:29:50 2019 +0100

    user export csv : exclude disabled attributes (#30103)
#10

Mis à jour par Frédéric Péters il y a environ 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF