Projet

Général

Profil

Bug #12430

agoraplus: erreur lors de la mise à jour de la profession

Ajouté par Serghei Mihai il y a presque 8 ans. Mis à jour il y a environ 4 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
04 juillet 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Trace sur la prod:

Error occurred while processing request
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/passerelle/utils/jsonresponse.py", line 350, in api
    resp = f(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/passerelle/utils/__init__.py", line 104, in _wrapped_view
    return view_func(instance, request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/passerelle/contrib/agoraplus/views.py", line 450, in post
    return self.post_data(formdata)
  File "/usr/lib/python2.7/dist-packages/passerelle/contrib/agoraplus/views.py", line 590, in post_data
    new_employer_city, new_employer_phone)
  File "/usr/lib/python2.7/dist-packages/passerelle/contrib/agoraplus/models.py", line 834, in update_profession
    adult_data['pcs']['id'] = new_pcs['id']
TypeError: string indices must be integers, not str


Fichiers

Historique

#1

Mis à jour par Serghei Mihai il y a presque 8 ans

Visiblement ll s'agit d'un usage du formulaire pour déclarer une situation sans emploi: https://sentry.entrouvert.org/sentry/production/issues/663/ .

#2

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

Le patch ne semble pas corriger cette trace en première lecture adult_data['pcs']['id'] = new_pcs['id'] et string indices must be integers, not str ça veut dire que new_pcs est une chaîne et non pas un dico, et donc if new_pcs['id'] va générer la même trace.

#3

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

new_pcs est censé d'être le couple {"id": "...", "text": "..."} car provient d'une liste wcs.
Apparemment le champ correspondant dans le formulaire wcs correspondant (pcs), n'a pas été envoyé du tout.
Patch modifié.

#4

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

Là tu supposes que si bool(new_pcs) == True alors c'est que new_pcs est un dico (i.e. tu suppose que dans la trace ici, new_pcs était la chaîne vide). T'es sûr de ton coup ?

#5

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

En fait, si la variable est envoyée par wcs, elle est reçue par le connecteur sous forme d'un dico, ou une chaîne.
Si la variable wcs n'est pas envoyée, une chaîne vide est renvoyée: http://git.entrouvert.org/passerelle.git/tree/passerelle/contrib/agoraplus/wcs.py#n51

#6

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

Ça n'empêche pas de réfléchir pour comprendre mais on a désormais (et déjà du temps cette trace) la trace en HTML avec les variables dans le scope.

adult_id     u'20026'
new_employer_phone     ''
new_employer_city     ''
new_pcs     ''
new_employer_name     ''
new_profession     u'sans profession'
#7

Mis à jour par Thomas Noël il y a environ 4 ans

  • Statut changé de Nouveau à Rejeté

Connecteur supprimé

Formats disponibles : Atom PDF