Bug #25279
Trace générée sur la recette
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
14 juillet 2018
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Club:
Description
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).
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)
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
https://demarches-validation.test.entrouvert.org/backoffice/workflows/44/status/1/items/3/ tu écris dans un champ (texte) des valeurs numériques; la trace dit que ça ne va pas, que la base de données n'est pas prête à ça. Entoure de str() tes calculs pour obtenir des chaines. Pour que ça ne soit plus nécessaire j'ai créé #25280.