Projet

Général

Profil

Development #42606

Préremplir une liste issue d'une source de donnée avec la valeur d'un autre liste

Ajouté par Nicolas Roche il y a environ 4 ans. Mis à jour il y a environ 4 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
07 mai 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Dans une première page on choisit un item dans une liste issue d'une source de donnée.
Dans une seconde page on souhaite utiliser l'item sélectionné pour préremplir une seconde liste issue de la même source de donnée.

  def test_form_page_query_string_list_prefill2(pub):
    user = create_user(pub)
    formdef = create_formdef()
    formdef.data_class().wipe()
    formdef.fields = [
        fields.PageField(id='0', label='1st page', type='page'),
        fields.ItemField(id='1', label='item1',
                         varname='item', required=False, data_source={'type': 'foobar'}),
        fields.PageField(id='2', label='2nd page', type='page'),
        fields.ItemField(id='3', label='item2',
                         varname='item', required=False, data_source={'type': 'foobar'},
                         prefill={'type': 'string', 'value': '{{form_var_item1_id}}'}),        
    ]
    formdef.store()

    NamedDataSource.wipe()
    data_source = NamedDataSource(name='foobar')
    data_source.data_source = {'type': 'formula',
            'value': repr([{'id': '1', 'text': 'un'},
                           {'id': '2', 'text': 'deux'},
                           {'id': '3', 'text': 'trois'},
                           {'id': '4', 'text': 'quatre'},
                           ])}
    data_source.store()

    resp = get_app(pub).get('/test/')
    resp.form['f1'].value = '2'
    resp = resp.form.submit('submit')
    assert resp.form['f3'].value == '2'  # <= '1'

Fichiers

form-reuse-field.wcs (3,04 ko) form-reuse-field.wcs Nicolas Roche, 07 mai 2020 10:36

Historique

#2

Mis à jour par Frédéric Péters il y a environ 4 ans

form_var_item1_id n'est pas une variable qui existe, il faut faire ça avec _raw. (ça peut très bien ne pas être suffisant mais c'est une erreur sûre).

#3

Mis à jour par Nicolas Roche il y a environ 4 ans

Ça fonctionne bien avec _raw. (je pensais pourtant l'avoir testé...)

#4

Mis à jour par Nicolas Roche il y a environ 4 ans

  • Statut changé de Nouveau à Rejeté

Je ferme, désolé pour le bruit.

Formats disponibles : Atom PDF