Project

General

Profile

Bug #8982

crash sur validation d'une liste à choix multiple avec data_source "structured"

Added by Thomas Noël almost 7 years ago. Updated almost 7 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Target version:
Start date:
13 November 2015
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:

Description

Un champ "child" liste à choix multiple, qui a en data_source une liste de dictionnaires complexes, l'affichage est bon, mais quand on valide et on arrive sur cette trace :

Exception:
  type = '<type 'exceptions.AttributeError'>', value = ''list' object has no attribute 'items''

Stack trace (most recent call first):
  File "/usr/lib/python2.7/dist-packages/wcs/formdata.py", line 77, in get_dict_with_varnames
    75                 structured_value = data.get('%s_structured' % field.id)
    76                 if structured_value:
>   77                     for k, v in structured_value.items():
    78                         if k in ('id', 'text'):
    79                             continue

  locals: 
     raw_value = ['sas_18', 'sas_19']
     new_data = {'field_civilite': 'Mme', 'f4': 'sqqsd', 'field_telephone_fixe_personnel': None, 'f6': 'qsdqds', 'field_code_postal': None, 'var_child_raw': ['sas_18', 'sas_19'], 'f108': None, 'field_enfants_concernes': ['sas_18', 'sas_19'], 'field_complement_au_n_de_voie': None, 'f49': None, 'f48': None, 'field_nom': 'sqqsd', 'field_telephone_mobile_personnel': None, 'f177': 'Mme', 'field_courriel': None, 'field_type_de_voie': 'All\xc3\xa9e', 'field_complement_d_adresse_libre': None, 'field_numero_de_voie': None, 'f190': None, 'field_intitule_de_la_voie': None, 'f54': None, 'f197': 'All\xc3\xa9e', 'f52': None, 'f53': None, 'f51': None, 'field_prenom': 'qsdqds', 'f199': ['sas_18', 'sas_19'], 'f12': None, 'var_child': 'Ferdinand No\xc3\xabl, Tistou No\xc3\xabl', 'field_ville': None}
     fields = [<wcs.fields.PageField object at 0x7f0d952f4750>, <wcs.fields.CommentField object at 0x7f0d952f4ad0>, <wcs.fields.ItemField object at 0x7f0d952f4a50>, <wcs.fields.StringField object at 0x7f0d952f4a10>, <wcs.fields.StringField object at 0x7f0d952f4fd0>, <wcs.fields.EmailField object at 0x7f0d952f4390>, <wcs.fields.StringField object at 0x7f0d952f49d0>, <wcs.fields.StringField object at 0x7f0d952f4190>, <wcs.fields.PageField object at 0x7f0d952f4450>, <wcs.fields.CommentField object at 0x7f0d952f4cd0>, <wcs.fields.TitleField object at 0x7f0d952f4f10>, <wcs.fields.StringField object at 0x7f0d952f4550>, <wcs.fields.StringField object at 0x7f0d952f42d0>, <wcs.fields.ItemField object at 0x7f0d952f4410>, <wcs.fields.StringField object at 0x7f0d952f45d0>, <wcs.fields.StringField object at 0x7f0d951f8790>, <wcs.fields.StringField object at 0x7f0d951f8c50>, <wcs.fields.StringField object at 0x7f0d951f8f90>, <wcs.fields.PageField object at 0x7f0d951f8d90>, <wcs.fields.ItemsField object at 0x7f0d951f8e10>, <wcs.fields.ItemField object at 0x7f0d951f8a10>, <wcs.fields.ItemField object at 0x7f0d951f85d0>, <wcs.fields.ItemField object at 0x7f0d951f8e90>]
     formdata = <FormData id:None>
     value = ['sas_18', 'sas_19']
     structured_value = [{u'first_name': u'Ferdinand', u'last_name': u'No\xebl', u'parental_autorithy_structured': {u'cellphone': u'', u'first_name': u'Thomas', u'last_name': u'No\xebl', u'age_in_days': 2108, u'title': {u'text': u'Monsieur', u'id': u'1'}, u'text': u'Thomas No\xebl', u'age': 5, u'profession': u'', u'birthdate': u'2010-02-03', u'id': u'sas_15', u'phone': u'0911223344', u'employer_address': None, u'index': 1, u'address': {u'city': {u'text': u'Alfortville', u'id': u'1'}, u'post_code': u'94140', u'btq': {u'text': u'', u'id': u'0'}, u'text': u'7 Rue CHARLES DE GAULLE', u'number': u'7', u'full': u'7 Rue CHARLES DE GAULLE, 94140 Alfortville', u'street': {u'text': u'CHARLES DE GAULLE', u'id': u'19'}, u'type_of_street': {u'text': u'Rue', u'id': u'11'}}, u'sas': True, u'email': u'tnoel@entrouvert.com'}, u'age_in_days': 1584, u'text': u'Ferdinand No\xebl', u'age': 4, u'birthdate': u'2011-07-13', u'sex': u'M', u'keywords': [u'enfant-annee-2011', u'enfant-age-4', u'enfant-age-plus-de-0', u'enfant-age-plus-de-1', u'enfant-age-plus-de-2', u'enfant-age-plus-de-3', u'enfant-age-moins-de-5', u'enfant-age-moins-de-6', u'enfant-age-moins-de-7', u'enfant-age-moins-de-8', u'enfant-age-moins-de-9', u'enfant-age-moins-de-10', u'enfant-age-moins-de-11', u'enfant-age-moins-de-12', u'enfant-age-moins-de-13', u'enfant-age-moins-de-14', u'enfant-age-moins-de-15', u'enfant-age-moins-de-16', u'enfant-age-moins-de-17', u'enfant-age-moins-de-18', u'enfant-age-moins-de-19', u'enfant-age-moins-de-20', u'enfant-non-inscrit'], u'birth_country': u'France', u'sas': True, u'birth_city': u'Massy', u'id': u'sas_18', u'parental_autorithy': [{u'id': u'sas_15'}]}, {u'first_name': u'Tistou', u'last_name': u'No\xebl', u'parental_autorithy_structured': {u'cellphone': u'', u'first_name': u'Thomas', u'last_name': u'No\xebl', u'age_in_days': 2108, u'title': {u'text': u'Monsieur', u'id': u'1'}, u'text': u'Thomas No\xebl', u'age': 5, u'profession': u'', u'birthdate': u'2010-02-03', u'id': u'sas_15', u'phone': u'0911223344', u'employer_address': None, u'index': 1, u'address': {u'city': {u'text': u'Alfortville', u'id': u'1'}, u'post_code': u'94140', u'btq': {u'text': u'', u'id': u'0'}, u'text': u'7 Rue CHARLES DE GAULLE', u'number': u'7', u'full': u'7 Rue CHARLES DE GAULLE, 94140 Alfortville', u'street': {u'text': u'CHARLES DE GAULLE', u'id': u'19'}, u'type_of_street': {u'text': u'Rue', u'id': u'11'}}, u'sas': True, u'email': u'tnoel@entrouvert.com'}, u'age_in_days': 1011, u'text': u'Tistou No\xebl', u'age': 2, u'birthdate': u'2013-02-05', u'sex': u'M', u'keywords': [u'enfant-annee-2013', u'enfant-age-2', u'enfant-age-plus-de-0', u'enfant-age-plus-de-1', u'enfant-age-moins-de-3', u'enfant-age-moins-de-4', u'enfant-age-moins-de-5', u'enfant-age-moins-de-6', u'enfant-age-moins-de-7', u'enfant-age-moins-de-8', u'enfant-age-moins-de-9', u'enfant-age-moins-de-10', u'enfant-age-moins-de-11', u'enfant-age-moins-de-12', u'enfant-age-moins-de-13', u'enfant-age-moins-de-14', u'enfant-age-moins-de-15', u'enfant-age-moins-de-16', u'enfant-age-moins-de-17', u'enfant-age-moins-de-18', u'enfant-age-moins-de-19', u'enfant-age-moins-de-20', u'enfant-non-inscrit'], u'birth_country': u'France', u'sas': True, u'birth_city': u'Massy', u'id': u'sas_19', u'parental_autorithy': [{u'id': u'sas_15'}]}]
     field = <wcs.fields.ItemsField object at 0x7f0d951f8e10>
     identifier_name = 'enfants_concernes'
     varnames_only = False
     data = {'199': ['sas_18', 'sas_19'], '194': 'Oui', '197': 'All\xc3\xa9e', '196': 'Non', '197_display': 'All\xc3\xa9e', '193': '10', '177': 'Mme', '48': None, '49': None, '199_display': 'Ferdinand No\xc3\xabl, Tistou No\xc3\xabl', '4': 'sqqsd', '6': 'qsdqds', '199_structured': [{u'first_name': u'Ferdinand', u'last_name': u'No\xebl', u'parental_autorithy_structured': {u'cellphone': u'', u'first_name': u'Thomas', u'last_name': u'No\xebl', u'age_in_days': 2108, u'title': {u'text': u'Monsieur', u'id': u'1'}, u'text': u'Thomas No\xebl', u'age': 5, u'profession': u'', u'birthdate': u'2010-02-03', u'id': u'sas_15', u'phone': u'0911223344', u'employer_address': None, u'index': 1, u'address': {u'city': {u'text': u'Alfortville', u'id': u'1'}, u'post_code': u'94140', u'btq': {u'text': u'', u'id': u'0'}, u'text': u'7 Rue CHARLES DE GAULLE', u'number': u'7', u'full': u'7 Rue CHARLES DE GAULLE, 94140 Alfortville', u'street': {u'text': u'CHARLES DE GAULLE', u'id': u'19'}, u'type_of_street': {u'text': u'Rue', u'id': u'11'}}, u'sas': True, u'email': u'tnoel@entrouvert.com'}, u'age_in_days': 1584, u'text': u'Ferdinand No\xebl', u'age': 4, u'birthdate': u'2011-07-13', u'sex': u'M', u'keywords': [u'enfant-annee-2011', u'enfant-age-4', u'enfant-age-plus-de-0', u'enfant-age-plus-de-1', u'enfant-age-plus-de-2', u'enfant-age-plus-de-3', u'enfant-age-moins-de-5', u'enfant-age-moins-de-6', u'enfant-age-moins-de-7', u'enfant-age-moins-de-8', u'enfant-age-moins-de-9', u'enfant-age-moins-de-10', u'enfant-age-moins-de-11', u'enfant-age-moins-de-12', u'enfant-age-moins-de-13', u'enfant-age-moins-de-14', u'enfant-age-moins-de-15', u'enfant-age-moins-de-16', u'enfant-age-moins-de-17', u'enfant-age-moins-de-18', u'enfant-age-moins-de-19', u'enfant-age-moins-de-20', u'enfant-non-inscrit'], u'birth_country': u'France', u'sas': True, u'birth_city': u'Massy', u'id': u'sas_18', u'parental_autorithy': [{u'id': u'sas_15'}]}, {u'first_name': u'Tistou', u'last_name': u'No\xebl', u'parental_autorithy_structured': {u'cellphone': u'', u'first_name': u'Thomas', u'last_name': u'No\xebl', u'age_in_days': 2108, u'title': {u'text': u'Monsieur', u'id': u'1'}, u'text': u'Thomas No\xebl', u'age': 5, u'profession': u'', u'birthdate': u'2010-02-03', u'id': u'sas_15', u'phone': u'0911223344', u'employer_address': None, u'index': 1, u'address': {u'city': {u'text': u'Alfortville', u'id': u'1'}, u'post_code': u'94140', u'btq': {u'text': u'', u'id': u'0'}, u'text': u'7 Rue CHARLES DE GAULLE', u'number': u'7', u'full': u'7 Rue CHARLES DE GAULLE, 94140 Alfortville', u'street': {u'text': u'CHARLES DE GAULLE', u'id': u'19'}, u'type_of_street': {u'text': u'Rue', u'id': u'11'}}, u'sas': True, u'email': u'tnoel@entrouvert.com'}, u'age_in_days': 1011, u'text': u'Tistou No\xebl', u'age': 2, u'birthdate': u'2013-02-05', u'sex': u'M', u'keywords': [u'enfant-annee-2013', u'enfant-age-2', u'enfant-age-plus-de-0', u'enfant-age-plus-de-1', u'enfant-age-moins-de-3', u'enfant-age-moins-de-4', u'enfant-age-moins-de-5', u'enfant-age-moins-de-6', u'enfant-age-moins-de-7', u'enfant-age-moins-de-8', u'enfant-age-moins-de-9', u'enfant-age-moins-de-10', u'enfant-age-moins-de-11', u'enfant-age-moins-de-12', u'enfant-age-moins-de-13', u'enfant-age-moins-de-14', u'enfant-age-moins-de-15', u'enfant-age-moins-de-16', u'enfant-age-moins-de-17', u'enfant-age-moins-de-18', u'enfant-age-moins-de-19', u'enfant-age-moins-de-20', u'enfant-non-inscrit'], u'birth_country': u'France', u'sas': True, u'birth_city': u'Massy', u'id': u'sas_19', u'parental_autorithy': [{u'id': u'sas_15'}]}], 'draft_formdata_id': 6, 'future_tracking_code': 'MVKVNWTH', '196_display': 'Non', '190': None, '108': None, '193_display': 'P\xc3\xa8re', '12': None, '54': None, '194_display': 'Oui', '51': None, '53': None, '52': None, '177_display': 'Mme'}
     display_value = 'Ferdinand No\xc3\xabl, Tistou No\xc3\xabl'

  File "/usr/lib/python2.7/dist-packages/wcs/formdata.py", line 363, in get_as_dict
   361 
   362     def get_as_dict(self):
>  363         return get_dict_with_varnames(self.formdef.fields, self.data, self)
   364 
   365     def get_substitution_variables(self, minimal=False):

  locals: 
     self = <FormData id:None>

Files

Associated revisions

Revision 4df04e0f (diff)
Added by Frédéric Péters (de retour le 10/10) almost 7 years ago

formdata: fix rendition of structured items in substitution variables (#8982)

History

#1

Updated by Frédéric Péters (de retour le 10/10) almost 7 years ago

Tu pourrais attacher le bout de json avec la liste et ses données structurées ?

#3

Updated by Thomas Noël almost 7 years ago

Frédéric Péters a écrit :

Tu pourrais attacher le bout de json avec la liste et ses données structurées ?

Il est visible sur la trace dans «structured_value» je pense ? Ou bien c'est autre chose ?

#4

Updated by Frédéric Péters (de retour le 10/10) almost 7 years ago

Il s'agissait pour moi de pouvoir simplement reproduire en copiant/collant une URL dans une datasource sur mon wcs local, plutôt que de créer un truc approchant mais c'est finalement ce que j'ai fait et ça suffisait.

#5

Updated by Thomas Noël almost 7 years ago

ack

#6

Updated by Frédéric Péters (de retour le 10/10) almost 7 years ago

  • Status changed from En cours to Résolu (à déployer)
commit 4df04e0fa493a5ad2ccc410f7197c91ff50829c1
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Nov 13 19:45:33 2015 +0100

    formdata: fix rendition of structured items in substitution variables (#8982)
#7

Updated by Frédéric Péters (de retour le 10/10) almost 7 years ago

  • Target version set to v1.23
#8

Updated by Frédéric Péters (de retour le 10/10) almost 7 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF