Development #42606
Préremplir une liste issue d'une source de donnée avec la valeur d'un autre liste
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
Historique
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).
Mis à jour par Nicolas Roche il y a environ 4 ans
Ça fonctionne bien avec _raw
. (je pensais pourtant l'avoir testé...)
Mis à jour par Nicolas Roche il y a environ 4 ans
- Statut changé de Nouveau à Rejeté
Je ferme, désolé pour le bruit.