Development #12427
absence de variable de formulaire lors d'une saisie backoffice alimentée depuis welco et sans code de suivi
Début:
04 juillet 2016
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Description
La saisie depuis welco enregistre un "brouillon" mais derrière l'absence de code de suivi intervient et w.c.s. s'emmêle les pinceaux.
def test_backoffice_submission_substitution_vars(pub): user = create_user(pub) create_environment(pub) formdef = FormDef.get_by_urlname('form-title') formdef.fields = [ fields.PageField(id='0', label='1st page', type='page'), fields.StringField(id='1', label='1st field', type='string', required=False, varname='foobar'), fields.ItemField(id='10', label='2nd field', type='item', items=['foo', 'bar', 'baz'], varname='foobar2'), fields.PageField(id='4', label='2nd page', type='page'), fields.CommentField(id='5', label='X[form_var_foobar]Y[form_var_foobar2_raw]Z', type='comment'), ] formdef.backoffice_submission_roles = user.roles[:] formdef.store() app = login(get_app(pub)) resp = app.get('/backoffice/submission/form-title/') resp.form['f1'].value = 'PLOP' resp.form['f10'].value = 'bar' resp = resp.form.submit('submit') assert 'XPLOPYbarZ' in resp.body formdef.data_class().wipe() # same but starting from a draft, as if it was initiated by welco formdata = formdef.data_class()() formdata.data = {} formdata.status = 'draft' formdata.backoffice_submission = True formdata.store() resp = app.get('/backoffice/submission/form-title/%s' % formdata.id) resp = resp.follow() resp.form['f1'].value = 'PLOP' resp.form['f10'].value = 'bar' resp = resp.form.submit('submit') assert 'XPLOPYbarZ' in resp.body # <---- FIXME
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 8 ans
- Fichier 0001-forms-always-save-changes-in-draft-formdata-if-it-ex.patch 0001-forms-always-save-changes-in-draft-formdata-if-it-ex.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a presque 8 ans
- dans le code, ce commentaire : "because welco did create one" à remplacer par "because created via the submission API (for example by Welco)" ?
- dans le test, le bloc "if False:" qui traine
Mis à jour par Frédéric Péters il y a presque 8 ans
- Fichier 0001-forms-always-save-changes-in-draft-formdata-if-it-ex.patch 0001-forms-always-save-changes-in-draft-formdata-if-it-ex.patch ajouté
Voilà.
Mis à jour par Frédéric Péters il y a presque 8 ans
- Statut changé de En cours à Résolu (à déployer)
commit ed0a4c49a587d3fa1a2b04f0b51b6fc66e0030c5 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Jul 4 14:31:39 2016 +0200 forms: always save changes in draft formdata if it exists (#12427)
forms: always save changes in draft formdata if it exists (#12427)
It is possible for tracking code to be disabled but to have drafts because the
formdata was initiated from Welco.