Projet

Général

Profil

Development #12427

absence de variable de formulaire lors d'une saisie backoffice alimentée depuis welco et sans code de suivi

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
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

Révision ed0a4c49 (diff)
Ajouté par Frédéric Péters il y a presque 8 ans

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.

Historique

#2

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

#3

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
#5

Mis à jour par Thomas Noël il y a presque 8 ans

Ack

#6

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)
#7

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

  • Version cible mis à v1.49
#8

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

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF