Bug #45380
IndexError: list index out of range
0%
Description
https://sentry.entrouvert.org/entrouvert/publik/issues/3511/
IndexError: list index out of range (11 additional frame(s) were not displayed) ... File "quixote/directory.py", line 88, in _q_traverse return obj._q_traverse(path) File "wcs/admin/fields.py", line 219, in _q_traverse return Directory._q_traverse(self, path) File "quixote/directory.py", line 92, in _q_traverse return obj() File "wcs/admin/fields.py", line 377, in update_order new_fields = [ [x for x in self.objectdef.fields if x.id == y][0] for y in new_order] File "wcs/admin/fields.py", line 377, in <listcomp> new_fields = [ [x for x in self.objectdef.fields if x.id == y][0] for y in new_order]
Fichiers
Révisions associées
Historique
Mis à jour par Lauréline Guérin il y a presque 4 ans
Pour reproduire, par exemple:
- ouvrir l'édition des champs d'un formulaire dans 2 onglets différents
- dans le premier onglet, supprimer un champ
- dans le 2e onglet, réordonner les champs => 500 sur l'appel ajax
Ce n'est pas vraiment gênant dans ce sens, car on essaie de trier plus de champs qu'il n'en existe.
Par contre, imaginons le cas suivant:
- ouvrir l'édition des champs d'un formulaire dans 2 onglets différents
- dans le premier onglet, ajouter un champ
- dans le 2e onglet, réordonner les champs => le champ ajouté a disparu
Proposition: déjà ne pas planter sur un IndexError
Ignorer lorsqu'on ne connaît pas un id
Ne rien modifier lorsqu'il manque un id
Mis à jour par Thomas Noël il y a presque 4 ans
Alternativement je proposerais bien de patcher tous les navigateurs pour retirer la fonctionnalité "onglets" mais personne ne m'écoute jamais.
Mais oui, d'accord avec ton analyse et ta proposition.
Mis à jour par Lauréline Guérin il y a presque 4 ans
- Fichier 0002-backoffice-fix-form-fields-reorder-45380.patch 0002-backoffice-fix-form-fields-reorder-45380.patch ajouté
- Fichier 0001-misc-split-test-module.patch 0001-misc-split-test-module.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Solution proposée à Résolu (à déployer)
Validé/poussé, mais le split des tests trop compliqué à rebaser, je l'ai retiré ici et je le refais.
commit 05931348df9cfcf8fbe29109cbe4942ac5356dec Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Thu Jul 23 16:51:38 2020 +0200 backoffice: fix form fields reorder (#45380)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
backoffice: fix form fields reorder (#45380)