Projet

Général

Profil

Bug #25279

Mis à jour par Frédéric Péters il y a presque 6 ans

Je remplis ce formulaire https://demarches-validation.test.entrouvert.org/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/

Quand je valide, boom (et pas d'erreur affichée côté WF ou formulaire).

<pre>
Exception:
type = '<type 'exceptions.AssertionError'>', value = ''

Stack trace (most recent call first):
File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 1077, in get_sql_dict_from_data
1075 value = [[x, unicode(y).encode('utf-8')] for x, y in value.items()]
1076 elif sql_type == 'varchar':
> 1077 assert isinstance(value, basestring)
1078 elif sql_type == 'date':
1079 assert type(value) is time.struct_time

locals:
data = {'12_display': 'Ne peut comprendre que des caract\xc3\xa8res non accentu\xc3\xa9s et _', '13_display': 'form_var_choix == Oui', '7_display': 'Oui mais uniquement si leur traitement est proche', 'bo1': 0, '5_structured': {'num_question': 'Q01', 'text': 'Oui sils ont un r\xc3\xb4le particulier', 'libelle': 'Est-il possible dafficher un formulaire seulement \xc3\xa0 certaines personnes\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '14'}, '14_structured': {'num_question': 'Q10', 'text': 'form_var_test == Vrai', 'libelle': 'Quelle condition est correcte et v\xc3\xa9rifi\xc3\xa9e lorsque le champ dont lidentifiant est test a pour valeur Vrai\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '104'}, '12_structured': {'num_question': 'Q08', 'text': 'Ne peut comprendre que des caract\xc3\xa8res non accentu\xc3\xa9s et _', 'libelle': 'Lidentifiant dun champ\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '84'}, '5_display': 'Oui sils ont un r\xc3\xb4le particulier', '5': '14', '7': '34', '6': '24', '9': '50', '9_structured': {'num_question': 'Q05', 'text': 'Des cat\xc3\xa9gories', 'libelle': 'Lensemble des permissions sur la plate-forme sont d\xc3\xa9termin\xc3\xa9es par\xc2\xa0:', 'valeur': 'NOK', 'commentaire': 'faux parce que tes nul', 'id': '50'}, '8_structured': {'num_question': 'Q04', 'text': 'Les formulaires et les workflows', 'libelle': 'Il est possible dexporter sous forme de fichier XML\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '44'}, '9_display': 'Des cat\xc3\xa9gories', '6_structured': {'num_question': 'Q02', 'text': 'Un formulaire web et un workflow de traitement', 'libelle': 'Une d\xc3\xa9marche en ligne fa\xc3\xaetes avec Publik cest\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '24'}, '13': '94', '14_display': 'form_var_test == Vrai', '10_display': 'Avec nimporte quelle source de donn\xc3\xa9es correctement configur\xc3\xa9e ', '8': '44', '7_structured': {'num_question': 'Q03', 'text': 'Oui mais uniquement si leur traitement est proche', 'libelle': 'Est-il est possible dassocier plusieurs formulaires \xc3\xa0 un workflow\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '34'}, '11': '70', '10': '64', '10_structured': {'num_question': 'Q06', 'text': 'Avec nimporte quelle source de donn\xc3\xa9es correctement configur\xc3\xa9e ', 'libelle': 'Il est possible de pr\xc3\xa9-remplir un champ\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '64'}, '12': '84', '14': '104', '11_structured': {'num_question': 'Q07', 'text': 'grid-2-1', 'libelle': 'Pour afficher deux champs cote \xc3\xa0 cote sur toute la largeur de la page, quelle est la syntaxe CSS correcte\xc2\xa0:', 'valeur': 'NOK', 'commentaire': 'faux parce que tes nul', 'id': '70'}, '6_display': 'Un formulaire web et un workflow de traitement', '11_display': 'grid-2-1', '13_structured': {'num_question': 'Q09', 'text': 'form_var_choix == Oui', 'libelle': 'Quelle condition est correcte et v\xc3\xa9rifi\xc3\xa9e lorsque le champ dont lidentifiant est choix a pour valeur Oui\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '94'}, '8_display': 'Les formulaires et les workflows'}
field = <wcs.fields.StringField object at 0x7fcad466b9d0>
formdef = <FormDef 'Formation administrateur fonctionnel - \xc3\x89tape 1' id:120>
self = <Formation-Administrateur-Fonctionnel-Etape-1 'Formation administrateur fonctionnel - \xc3\x89tape 1 - n\xc2\xb0120-4' id:4>
sql_dict = {'f8_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q04\'\np3\nsS\'text\'\np4\nS\'Les formulaires et les workflows\'\np5\nsS\'libelle\'\np6\nS\'Il est possible dexporter sous forme de fichier XML\\xc2\\xa0:\'\np7\nsS\'valeur\'\np8\nS\'OK\'\np9\nsS\'commentaire\'\np10\nS\'Vrai parce que tas du bol\'\np11\nsS\'id\'\np12\nS\'44\'\np13\ns."), 'f5': '14', 'f6': '24', 'f7': '34', 'f8': '44', 'f9': '50', 'f5_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q01\'\np3\nsS\'text\'\np4\nS\'Oui sils ont un r\\xc3\\xb4le particulier\'\np5\nsS\'libelle\'\np6\nS\'Est-il possible dafficher un formulaire seulement \\xc3\\xa0 certaines personnes\\xc2\\xa0?\'\np7\nsS\'valeur\'\np8\nS\'OK\'\np9\nsS\'commentaire\'\np10\nS\'Vrai parce que tas du bol\'\np11\nsS\'id\'\np12\nS\'14\'\np13\ns."), 'f13_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q09\'\np3\nsS\'text\'\np4\nS\'form_var_choix == Oui\'\np5\nsS\'libelle\'\np6\nS\'Quelle condition est correcte et v\\xc3\\xa9rifi\\xc3\\xa9e lorsque le champ dont lidentifiant est choix a pour valeur Oui\\xc2\\xa0?\'\np7\nsS\'valeur\'\np8\nS\'OK\'\np9\nsS\'commentaire\'\np10\nS\'Vrai parce que tas du bol\'\np11\nsS\'id\'\np12\nS\'94\'\np13\ns."), 'f12_display': 'Ne peut comprendre que des caract\xc3\xa8res non accentu\xc3\xa9s et _', 'f7_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q03\'\np3\nsS\'text\'\np4\nS\'Oui mais uniquement si leur traitement est proche\'\np5\nsS\'libelle\'\np6\nS\'Est-il est possible dassocier plusieurs formulaires \\xc3\\xa0 un workflow\\xc2\\xa0?\'\np7\nsS\'valeur\'\np8\nS\'OK\'\np9\nsS\'commentaire\'\np10\nS\'Vrai parce que tas du bol\'\np11\nsS\'id\'\np12\nS\'34\'\np13\ns."), 'f14_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q10\'\np3\nsS\'text\'\np4\nS\'form_var_test == Vrai\'\np5\nsS\'libelle\'\np6\nS\'Quelle condition est correcte et v\\xc3\\xa9rifi\\xc3\\xa9e lorsque le champ dont lidentifiant est test a pour valeur Vrai\\xc2\\xa0?\'\np7\nsS\'valeur\'\np8\nS\'OK\'\np9\nsS\'commentaire\'\np10\nS\'Vrai parce que tas du bol\'\np11\nsS\'id\'\np12\nS\'104\'\np13\ns."), 'f5_display': 'Oui sils ont un r\xc3\xb4le particulier', 'f14_display': 'form_var_test == Vrai', 'f11_display': 'grid-2-1', 'f7_display': 'Oui mais uniquement si leur traitement est proche', 'f6_display': 'Un formulaire web et un workflow de traitement', 'f12_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q08\'\np3\nsS\'text\'\np4\nS\'Ne peut comprendre que des caract\\xc3\\xa8res non accentu\\xc3\\xa9s et _\'\np5\nsS\'libelle\'\np6\nS\'Lidentifiant dun champ\\xc2\\xa0:\'\np7\nsS\'valeur\'\np8\nS\'OK\'\np9\nsS\'commentaire\'\np10\nS\'Vrai parce que tas du bol\'\np11\nsS\'id\'\np12\nS\'84\'\np13\ns."), 'f13_display': 'form_var_choix == Oui', 'f10': '64', 'f6_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q02\'\np3\nsS\'text\'\np4\nS\'Un formulaire web et un workflow de traitement\'\np5\nsS\'libelle\'\np6\nS\'Une d\\xc3\\xa9marche en ligne fa\\xc3\\xaetes avec Publik cest\\xc2\\xa0:\'\np7\nsS\'valeur\'\np8\nS\'OK\'\np9\nsS\'commentaire\'\np10\nS\'Vrai parce que tas du bol\'\np11\nsS\'id\'\np12\nS\'24\'\np13\ns."), 'f10_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q06\'\np3\nsS\'text\'\np4\nS\'Avec nimporte quelle source de donn\\xc3\\xa9es correctement configur\\xc3\\xa9e \'\np5\nsS\'libelle\'\np6\nS\'Il est possible de pr\\xc3\\xa9-remplir un champ\\xc2\\xa0:\'\np7\nsS\'valeur\'\np8\nS\'OK\'\np9\nsS\'commentaire\'\np10\nS\'Vrai parce que tas du bol\'\np11\nsS\'id\'\np12\nS\'64\'\np13\ns."), 'f9_display': 'Des cat\xc3\xa9gories', 'f8_display': 'Les formulaires et les workflows', 'f12': '84', 'f13': '94', 'f9_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q05\'\np3\nsS\'text\'\np4\nS\'Des cat\\xc3\\xa9gories\'\np5\nsS\'libelle\'\np6\nS\'Lensemble des permissions sur la plate-forme sont d\\xc3\\xa9termin\\xc3\\xa9es par\\xc2\\xa0:\'\np7\nsS\'valeur\'\np8\nS\'NOK\'\np9\nsS\'commentaire\'\np10\nS\'faux parce que tes nul\'\np11\nsS\'id\'\np12\nS\'50\'\np13\ns."), 'f11': '70', 'f11_structured': bytearray(b"(dp1\nS\'num_question\'\np2\nS\'Q07\'\np3\nsS\'text\'\np4\nS\'grid-2-1\'\np5\nsS\'libelle\'\np6\nS\'Pour afficher deux champs cote \\xc3\\xa0 cote sur toute la largeur de la page, quelle est la syntaxe CSS correcte\\xc2\\xa0:\'\np7\nsS\'valeur\'\np8\nS\'NOK\'\np9\nsS\'commentaire\'\np10\nS\'faux parce que tes nul\'\np11\nsS\'id\'\np12\nS\'70\'\np13\ns."), 'f10_display': 'Avec nimporte quelle source de donn\xc3\xa9es correctement configur\xc3\xa9e ', 'f14': '104'}
sql_type = 'varchar'
value = 0

File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 1324, in store
1322 sql_dict['actions_roles_array'] = [str(x) for x in self.actions_roles if x]
1323
> 1324 sql_dict.update(self.get_sql_dict_from_data(self.data, self._formdef))
1325 conn, cur = get_connection_and_cursor()
1326 if not self.id:

locals:
self = <Formation-Administrateur-Fonctionnel-Etape-1 'Formation administrateur fonctionnel - \xc3\x89tape 1 - n\xc2\xb0120-4' id:4>
sql_dict = {'status': 'wf-1', 'last_update_time': datetime.datetime(2018, 7, 14, 7, 50, 28), 'concerned_roles_array': ['c8f0950706e44debbc6c69d95ca5152f'], 'tracking_code': None, 'workflow_roles_array': None, 'workflow_data': bytearray(b'N.'), 'workflow_roles': None, 'user_id': 2, 'submission_context': None, 'actions_roles_array': [], 'receipt_time': datetime.datetime(2018, 7, 14, 7, 50, 28), 'anonymised': None, 'id_display': '120-4', 'backoffice_submission': False, 'criticality_level': 0, 'submission_channel': None, 'page_no': 0}
x = 'c8f0950706e44debbc6c69d95ca5152f'

File "/usr/lib/python2.7/dist-packages/wcs/qommon/substitution.py", line 28, in f
26 return func(*args, **kwargs)
27 finally:
> 28 Substitutions.invalidate_cache()
29 return f
30

locals:
args = (<Formation-Administrateur-Fonctionnel-Etape-1 'Formation administrateur fonctionnel - \xc3\x89tape 1 - n\xc2\xb0120-4' id:4>,)
func = <function store at 0x7fcadc1b0500>
kwargs = {}

File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 342, in f
340 except psycopg2.Error:
341 get_connection().rollback()
> 342 raise
343 return f
344

locals:
args = (<Formation-Administrateur-Fonctionnel-Etape-1 'Formation administrateur fonctionnel - \xc3\x89tape 1 - n\xc2\xb0120-4' id:4>,)
func = <function f at 0x7fcadc1b0578>
kwargs = {}

File "/usr/lib/python2.7/dist-packages/wcs/wf/backoffice_fields.py", line 137, in perform
135 # store formdata everytime so substitution cache is invalidated,
136 # and backoffice field values can be used in subsequent fields.
> 137 formdata.store()
138
139 def fields_export_to_xml(self, item, charset, include_id=False):

locals:
field = {'field_id': 'bo1', 'value': '=0'}
formdata = <Formation-Administrateur-Fonctionnel-Etape-1 'Formation administrateur fonctionnel - \xc3\x89tape 1 - n\xc2\xb0120-4' id:4>
formdef_field = <wcs.fields.StringField object at 0x7fcad466b9d0>
new_value = 0
self = <wcs.wf.backoffice_fields.SetBackofficeFieldsWorkflowStatusItem object at 0x7fcad466b850>
x = <wcs.fields.StringField object at 0x7fcad466b9d0>

File "/usr/lib/python2.7/dist-packages/wcs/workflows.py", line 68, in perform_items
66 url = item.perform(formdata) or url
67 except AbortActionException:
> 68 break
69 if formdata.status != old_status:
70 break

locals:
depth = 20
formdata = <Formation-Administrateur-Fonctionnel-Etape-1 'Formation administrateur fonctionnel - \xc3\x89tape 1 - n\xc2\xb0120-4' id:4>
item = <wcs.wf.backoffice_fields.SetBackofficeFieldsWorkflowStatusItem object at 0x7fcad466b850>
items = [<wcs.wf.backoffice_fields.SetBackofficeFieldsWorkflowStatusItem object at 0x7fcad466b850>, <wcs.wf.jump.JumpWorkflowStatusItem object at 0x7fcac8bc26d0>, <wcs.wf.jump.JumpWorkflowStatusItem object at 0x7fcac8bc2990>]
old_status = 'wf-1'
url = None

File "/usr/lib/python2.7/dist-packages/wcs/formdata.py", line 456, in perform_workflow
454 wf_status = self.get_status()
455 from wcs.workflows import perform_items
> 456 url = perform_items(wf_status.items, self)
457 return url
458

locals:
perform_items = <function perform_items at 0x7fcae0a44de8>
self = <Formation-Administrateur-Fonctionnel-Etape-1 'Formation administrateur fonctionnel - \xc3\x89tape 1 - n\xc2\xb0120-4' id:4>
url = None
wf_status = <wcs.workflows.WorkflowStatus object at 0x7fcad466bad0>

File "/usr/lib/python2.7/dist-packages/wcs/forms/root.py", line 1022, in submitted
1020 url = None
1021 if existing_formdata is None:
> 1022 url = filled.perform_workflow()
1023
1024 if not filled.user_id:

locals:
existing_formdata = None
filled = <Formation-Administrateur-Fonctionnel-Etape-1 'Formation administrateur fonctionnel - \xc3\x89tape 1 - n\xc2\xb0120-4' id:4>
form = <wcs.qommon.form.Form object at 0x7fcad466f6d0>
self = <auquotidien.modules.formpage.AlternateFormPage object at 0x7fcad466bc50>
session = <Session at 7fcac849d310: d00e86637f972bff>
url = None

File "/usr/lib/python2.7/dist-packages/wcs/forms/root.py", line 856, in _q_index
854 return template.error_page(_('This form has already been submitted.'))
855
> 856 return self.submitted(form, existing_formdata)
857
858

locals:
authentication_context_check_result = None
existing_formdata = None
field = <wcs.fields.ItemField object at 0x7fcad466f290>
form = <wcs.qommon.form.Form object at 0x7fcad466f6d0>
form_data = {'12_display': 'Ne peut comprendre que des caract\xc3\xa8res non accentu\xc3\xa9s et _', '13_display': 'form_var_choix == Oui', '7_display': 'Oui mais uniquement si leur traitement est proche', '5_structured': {'num_question': 'Q01', 'text': 'Oui sils ont un r\xc3\xb4le particulier', 'libelle': 'Est-il possible dafficher un formulaire seulement \xc3\xa0 certaines personnes\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '14'}, '14_structured': {'num_question': 'Q10', 'text': 'form_var_test == Vrai', 'libelle': 'Quelle condition est correcte et v\xc3\xa9rifi\xc3\xa9e lorsque le champ dont lidentifiant est test a pour valeur Vrai\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '104'}, '12_structured': {'num_question': 'Q08', 'text': 'Ne peut comprendre que des caract\xc3\xa8res non accentu\xc3\xa9s et _', 'libelle': 'Lidentifiant dun champ\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '84'}, '5_display': 'Oui sils ont un r\xc3\xb4le particulier', '5': '14', '7': '34', '6': '24', '9': '50', '9_structured': {'num_question': 'Q05', 'text': 'Des cat\xc3\xa9gories', 'libelle': 'Lensemble des permissions sur la plate-forme sont d\xc3\xa9termin\xc3\xa9es par\xc2\xa0:', 'valeur': 'NOK', 'commentaire': 'faux parce que tes nul', 'id': '50'}, '8_structured': {'num_question': 'Q04', 'text': 'Les formulaires et les workflows', 'libelle': 'Il est possible dexporter sous forme de fichier XML\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '44'}, '9_display': 'Des cat\xc3\xa9gories', '6_structured': {'num_question': 'Q02', 'text': 'Un formulaire web et un workflow de traitement', 'libelle': 'Une d\xc3\xa9marche en ligne fa\xc3\xaetes avec Publik cest\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '24'}, '13': '94', '14_display': 'form_var_test == Vrai', '10_display': 'Avec nimporte quelle source de donn\xc3\xa9es correctement configur\xc3\xa9e ', '8': '44', '7_structured': {'num_question': 'Q03', 'text': 'Oui mais uniquement si leur traitement est proche', 'libelle': 'Est-il est possible dassocier plusieurs formulaires \xc3\xa0 un workflow\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '34'}, '11': '70', '10': '64', '10_structured': {'num_question': 'Q06', 'text': 'Avec nimporte quelle source de donn\xc3\xa9es correctement configur\xc3\xa9e ', 'libelle': 'Il est possible de pr\xc3\xa9-remplir un champ\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '64'}, '12': '84', '14': '104', '11_structured': {'num_question': 'Q07', 'text': 'grid-2-1', 'libelle': 'Pour afficher deux champs cote \xc3\xa0 cote sur toute la largeur de la page, quelle est la syntaxe CSS correcte\xc2\xa0:', 'valeur': 'NOK', 'commentaire': 'faux parce que tes nul', 'id': '70'}, '6_display': 'Un formulaire web et un workflow de traitement', '11_display': 'grid-2-1', '13_structured': {'num_question': 'Q09', 'text': 'form_var_choix == Oui', 'libelle': 'Quelle condition est correcte et v\xc3\xa9rifi\xc3\xa9e lorsque le champ dont lidentifiant est choix a pour valeur Oui\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '94'}, '8_display': 'Les formulaires et les workflows'}
magictoken = '7e3f82d8e399d094'
no_magic = <object object at 0x7fcad69f99e0>
prefill_user = <SqlUser 'Pierre Cros' id:2>
self = <auquotidien.modules.formpage.AlternateFormPage object at 0x7fcad466bc50>
session = <Session at 7fcac849d310: d00e86637f972bff>
session_magic_token = {'12_display': 'Ne peut comprendre que des caract\xc3\xa8res non accentu\xc3\xa9s et _', '13_display': 'form_var_choix == Oui', '7_display': 'Oui mais uniquement si leur traitement est proche', '5_structured': {'num_question': 'Q01', 'text': 'Oui sils ont un r\xc3\xb4le particulier', 'libelle': 'Est-il possible dafficher un formulaire seulement \xc3\xa0 certaines personnes\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '14'}, '14_structured': {'num_question': 'Q10', 'text': 'form_var_test == Vrai', 'libelle': 'Quelle condition est correcte et v\xc3\xa9rifi\xc3\xa9e lorsque le champ dont lidentifiant est test a pour valeur Vrai\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '104'}, '12_structured': {'num_question': 'Q08', 'text': 'Ne peut comprendre que des caract\xc3\xa8res non accentu\xc3\xa9s et _', 'libelle': 'Lidentifiant dun champ\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '84'}, '5_display': 'Oui sils ont un r\xc3\xb4le particulier', '5': '14', '7': '34', '6': '24', '9': '50', '9_structured': {'num_question': 'Q05', 'text': 'Des cat\xc3\xa9gories', 'libelle': 'Lensemble des permissions sur la plate-forme sont d\xc3\xa9termin\xc3\xa9es par\xc2\xa0:', 'valeur': 'NOK', 'commentaire': 'faux parce que tes nul', 'id': '50'}, '8_structured': {'num_question': 'Q04', 'text': 'Les formulaires et les workflows', 'libelle': 'Il est possible dexporter sous forme de fichier XML\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '44'}, '9_display': 'Des cat\xc3\xa9gories', '6_structured': {'num_question': 'Q02', 'text': 'Un formulaire web et un workflow de traitement', 'libelle': 'Une d\xc3\xa9marche en ligne fa\xc3\xaetes avec Publik cest\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '24'}, '13': '94', '14_display': 'form_var_test == Vrai', '10_display': 'Avec nimporte quelle source de donn\xc3\xa9es correctement configur\xc3\xa9e ', '8': '44', '7_structured': {'num_question': 'Q03', 'text': 'Oui mais uniquement si leur traitement est proche', 'libelle': 'Est-il est possible dassocier plusieurs formulaires \xc3\xa0 un workflow\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '34'}, '11': '70', '10': '64', '10_structured': {'num_question': 'Q06', 'text': 'Avec nimporte quelle source de donn\xc3\xa9es correctement configur\xc3\xa9e ', 'libelle': 'Il est possible de pr\xc3\xa9-remplir un champ\xc2\xa0:', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '64'}, '12': '84', '14': '104', '11_structured': {'num_question': 'Q07', 'text': 'grid-2-1', 'libelle': 'Pour afficher deux champs cote \xc3\xa0 cote sur toute la largeur de la page, quelle est la syntaxe CSS correcte\xc2\xa0:', 'valeur': 'NOK', 'commentaire': 'faux parce que tes nul', 'id': '70'}, '6_display': 'Un formulaire web et un workflow de traitement', '11_display': 'grid-2-1', '13_structured': {'num_question': 'Q09', 'text': 'form_var_choix == Oui', 'libelle': 'Quelle condition est correcte et v\xc3\xa9rifi\xc3\xa9e lorsque le champ dont lidentifiant est choix a pour valeur Oui\xc2\xa0?', 'valeur': 'OK', 'commentaire': 'Vrai parce que tas du bol', 'id': '94'}, '8_display': 'Les formulaires et les workflows'}
step = 2
v = None
verified = False

File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 67, in _q_traverse
65 raise TraversalError
66 elif hasattr(obj, '__call__'):
> 67 return obj()
68 else:
69 return obj

locals:
component = ''
name = '_q_index'
obj = <bound method AlternateFormPage._q_index of <auquotidien.modules.formpage.AlternateFormPage object at 0x7fcad466bc50>>
path = []
self = <auquotidien.modules.formpage.AlternateFormPage object at 0x7fcad466bc50>

File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 63, in _q_traverse
61 if path:
62 if hasattr(obj, '_q_traverse'):
> 63 return obj._q_traverse(path)
64 else:
65 raise TraversalError

locals:
component = 'formation-administrateur-fonctionnel-etape-1'
name = None
obj = <auquotidien.modules.formpage.AlternateFormPage object at 0x7fcad466bc50>
path = ['']
self = <auquotidien.modules.root.FormsRootDirectory object at 0x7fcad462a210>

File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 91, in _q_traverse
89 def _q_traverse(self, path):
90 self._q_access()
> 91 return super(AccessControlled, self)._q_traverse(path)
92
93

locals:
path = ['formation-administrateur-fonctionnel-etape-1', '']
self = <auquotidien.modules.root.FormsRootDirectory object at 0x7fcad462a210>

File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 63, in _q_traverse
61 if path:
62 if hasattr(obj, '_q_traverse'):
> 63 return obj._q_traverse(path)
64 else:
65 raise TraversalError

locals:
component = 'formation-administrateur-fonctionnel'
name = None
obj = <auquotidien.modules.root.FormsRootDirectory object at 0x7fcad462a210>
path = ['formation-administrateur-fonctionnel-etape-1', '']
self = <auquotidien.modules.root.AlternateRootDirectory object at 0x7fcaddd00150>

File "/usr/lib/python2.7/dist-packages/auquotidien/modules/root.py", line 847, in _q_traverse
845 return redirect('%s%s/%s' % (base_url, f.category.url_name, uri_rest))
846
> 847 raise e
848
849

locals:
path = ['formation-administrateur-fonctionnel', 'formation-administrateur-fonctionnel-etape-1', '']
response = <wcs.qommon.http_response.HTTPResponse instance at 0x7fcac87acef0>
self = <auquotidien.modules.root.AlternateRootDirectory object at 0x7fcaddd00150>

File "/usr/lib/pymodules/python2.7/quixote/publish.py", line 253, in try_publish
251 permanent=True)
252 components = path[1:].split('/')
> 253 output = self.root_directory._q_traverse(components)
254 # The callable ran OK, commit any changes to the session
255 self.finish_successful_request()

locals:
components = ['formation-administrateur-fonctionnel', 'formation-administrateur-fonctionnel-etape-1', '']
path = '/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/'
request = <wcs.compat.CompatHTTPRequest instance at 0x7fcaddcc6638>
self = <wcs.compat.CompatWcsPublisher object at 0x7fcaddd00190>

File "/usr/lib/python2.7/dist-packages/wcs/compat.py", line 206, in process_request
204 output = self.finish_interrupted_request(exc)
205 except Exception, exc:
> 206 output = self.finish_failed_request()
207 response = request.response
208

locals:
exc = AssertionError()
request = <wcs.compat.CompatHTTPRequest instance at 0x7fcaddcc6638>
self = <wcs.compat.CompatWcsPublisher object at 0x7fcaddd00190>

File "/usr/lib/python2.7/dist-packages/wcs/compat.py", line 244, in quixote
242 def quixote(request):
243 pub = get_publisher()
> 244 return pub.process_request(pub.get_request())
245
246

locals:
pub = <wcs.compat.CompatWcsPublisher object at 0x7fcaddd00190>
request = <WSGIRequest: POST '/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/'>

File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
130 wrapped_callback = self.make_view_atomic(callback)
131 try:
> 132 response = wrapped_callback(request, *callback_args, **callback_kwargs)
133 except Exception as e:
134 # If the view raised an exception, run it through exception

locals:
callback = <function quixote at 0x7fcae04c9a28>
callback_args = ()
callback_kwargs = {}
middleware_method = <bound method PrometheusStatsMiddleware.process_view of <hobo.middleware.stats.PrometheusStatsMiddleware object at 0x7fcade481b10>>
request = <WSGIRequest: POST '/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/'>
resolver = <RegexURLResolver 'wcs.urls' (None:None) ^/>
resolver_match = ResolverMatch(func=wcs.compat.quixote, args=(), kwargs={}, url_name=quixote, app_name=None, namespaces=[])
response = None
self = <django.core.handlers.wsgi.WSGIHandler object at 0x7fcae5b084d0>
urlconf = 'wcs.urls'
wrapped_callback = <function quixote at 0x7fcae04c9a28>

File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 189, in __call__
187 response = http.HttpResponseBadRequest()
188 else:
> 189 response = self.get_response(request)
190
191 response._handler_class = self.__class__

locals:
environ = {'HTTP_REFERER': 'https://demarches-validation.test.entrouvert.org/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/', 'SERVER_PROTOCOL': 'HTTP/1.0', 'uwsgi.version': '2.0.7-debian', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'POST', 'PATH_INFO': '/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/', 'HTTP_X_FORWARDED_SSL': 'on', 'QUERY_STRING': '', 'HTTP_X_REAL_IP': '94.224.199.171', 'CONTENT_LENGTH': '3129', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0', 'HTTP_CONNECTION': 'close', 'HTTP_COOKIE': 'A2_OPENED_SESSION=1; publik_portal_agent_url=https%3A%2F%2Fagents-validation.test.entrouvert.org%2F; publik_portal_agent_title=Portail%20Agent; wcs-b80415="381250ab486a6be6"; wcs-3fafcb="c9a5c6bbdb7c0dda"; wcs-0548d7="2dcc269e603e0b27"; wcs-8c8f12="d00e86637f972bff"; A2_OPENED_SESSION=1', 'SERVER_NAME': 'auquo-test', 'REMOTE_ADDR': '94.224.199.171', 'HTTP_X_FORWARDED_PROTOCOL': 'ssl', 'wsgi.url_scheme': 'https', 'SERVER_PORT': '80', 'uwsgi.node': 'auquo-test', 'HTTP_X_FORWARDED_PROTO': 'https', 'wsgi.input': <uwsgi._Input object at 0x7fcad5ab5798>, 'HTTP_DNT': '1', 'HTTP_HOST': 'demarches-validation.test.entrouvert.org', 'wsgi.multithread': False, 'HTTP_UPGRADE_INSECURE_REQUESTS': '1', 'REQUEST_URI': '/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'wsgi.version': (1, 0), 'HTTP_X_FORWARDED_FOR': '94.224.199.171', 'wsgi.errors': <open file 'wsgi_errors', mode 'w' at 0x7fcae0463c00>, 'wsgi.multiprocess': True, 'HTTP_ACCEPT_LANGUAGE': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'wsgi.run_once': False, 'CONTENT_TYPE': 'multipart/form-data; boundary=---------------------------17305932731673988491363423285', 'wsgi.file_wrapper': <built-in function uwsgi_sendfile>, 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br'}
request = <WSGIRequest: POST '/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/'>
self = <django.core.handlers.wsgi.WSGIHandler object at 0x7fcae5b084d0>
start_response = <built-in function uwsgi_spit>

Form:
_form_id 'c06fc80c78456070'
f10 '64'
f10_label 'Avec nimporte quelle source de donn\xc3\xa9es correctement configur\xc3\xa9e '
f11 '70'
f11_label 'grid-2-1'
f12 '84'
f12_label 'Ne peut comprendre que des caract\xc3\xa8res non accentu\xc3\xa9s et _'
f13 '94'
f13_label 'form_var_choix == Oui'
f14 '104'
f14_label 'form_var_test == Vrai'
f5 '14'
f5_label 'Oui sils ont un r\xc3\xb4le particulier'
f6 '24'
f6_label 'Un formulaire web et un workflow de traitement'
f7 '34'
f7_label 'Oui mais uniquement si leur traitement est proche'
f8 '44'
f8_label 'Les formulaires et les workflows'
f9 '50'
f9_label 'Des cat\xc3\xa9gories'
magictoken '7e3f82d8e399d094'
step '2'
submit 'Valider'

Cookies:
A2_OPENED_SESSION '1'
publik_portal_agent_title 'Portail%20Agent'
publik_portal_agent_url 'https%3A%2F%2Fagents-validation.test.entrouvert.org%2F'
wcs-0548d7 '2dcc269e603e0b27'
wcs-3fafcb 'c9a5c6bbdb7c0dda'
wcs-8c8f12 'd00e86637f972bff'
wcs-b80415 '381250ab486a6be6'

Environment:
CONTENT_LENGTH '3129'
CONTENT_TYPE 'multipart/form-data; boundary=---------------------------17305932731673988491363423285'
HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_ENCODING 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3'
HTTP_CONNECTION 'close'
HTTP_COOKIE 'A2_OPENED_SESSION=1; publik_portal_agent_url=https%3A%2F%2Fagents-validation.test.entrouvert.org%2F; publik_portal_agent_title=Portail%20Agent; wcs-b80415="381250ab486a6be6"; wcs-3fafcb="c9a5c6bbdb7c0dda"; wcs-0548d7="2dcc269e603e0b27"; wcs-8c8f12="d00e86637f972bff"; A2_OPENED_SESSION=1'
HTTP_DNT '1'
HTTP_HOST 'demarches-validation.test.entrouvert.org'
HTTP_REFERER 'https://demarches-validation.test.entrouvert.org/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/'
HTTP_UPGRADE_INSECURE_REQUESTS '1'
HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0'
HTTP_X_FORWARDED_FOR '94.224.199.171'
HTTP_X_FORWARDED_PROTO 'https'
HTTP_X_FORWARDED_PROTOCOL 'ssl'
HTTP_X_FORWARDED_SSL 'on'
HTTP_X_REAL_IP '94.224.199.171'
PATH_INFO '/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/'
QUERY_STRING ''
REMOTE_ADDR '94.224.199.171'
REMOTE_USER '2'
REQUEST_METHOD 'POST'
REQUEST_URI '/formation-administrateur-fonctionnel/formation-administrateur-fonctionnel-etape-1/'
SCRIPT_NAME ''
SERVER_NAME 'auquo-test'
SERVER_PORT '80'
SERVER_PROTOCOL 'HTTP/1.0'
uwsgi.node 'auquo-test'
uwsgi.version '2.0.7-debian'
wsgi.errors <open file 'wsgi_errors', mode 'w' at 0x7fcae0463c00>
wsgi.file_wrapper <built-in function uwsgi_sendfile>
wsgi.input <uwsgi._Input object at 0x7fcad5ab5798>
wsgi.multiprocess True
wsgi.multithread False
wsgi.run_once False
wsgi.url_scheme 'https'
wsgi.version (1, 0)
</pre>

Retour