misc: check selected item field value against updated list of options (#73982) #727

Merged
fpeters merged 1 commits from wip/73982-dynamic-data-source-prefilled-value into main 2023-10-02 18:49:00 +02:00
Owner
No description provided.
fpeters added 1 commit 2023-09-26 20:58:47 +02:00
fpeters force-pushed wip/73982-dynamic-data-source-prefilled-value from 14d464045a to 591696b2b5 2023-09-27 07:45:53 +02:00 Compare
fpeters reviewed 2023-09-27 08:17:18 +02:00
@ -966,1 +966,4 @@
widget.live_condition_fields = live_condition_fields[field.varname]
elif field.key == 'computed':
field.live_condition_source = True
field.live_condition_fields = live_condition_fields[field.varname]
Author
Owner

Les champs calculés n'ont pas de widget associé mais on a besoin d'enregistrer quelque part l'info sur les champs qui en dépendent. (je pense qu'on ne peut pas faire ça de manière systématique parce que les blocs de champs peuvent donner plusieurs widgets pour un seul field, mais je n'ai pas creusé).

Les champs calculés n'ont pas de widget associé mais on a besoin d'enregistrer quelque part l'info sur les champs qui en dépendent. (je pense qu'on ne peut pas faire ça de manière systématique parce que les blocs de champs peuvent donner plusieurs widgets pour un seul field, mais je n'ai pas creusé).
@ -527,4 +525,0 @@
# (this is required by quixote>=3 as the value would
# not be evaluated in the initial GET request of the
# page).
widget._parse(req)
Author
Owner

Ce code avait donc été ajouté pour quixote 3, c'est en forçant le passage dans _parse que l'erreur "choix invalide" était notée, parce qu'à ce stade du traitement les options possibles ne prennent pas encore en compte les données préremplies dans des champs précédents.

Ce code avait donc été ajouté pour quixote 3, c'est en forçant le passage dans _parse que l'erreur "choix invalide" était notée, parce qu'à ce stade du traitement les options possibles ne prennent pas encore en compte les données préremplies dans des champs précédents.
@ -689,2 +681,3 @@
# pass over prefilled fields that are used as live source of item
# fields
# fields, update matching list of options of matching fields,
# and mark fields as invalid if the selected value is not available.
Author
Owner

On passait déjà sur les champs pour actualiser les options présentées, on y ajoute ici l'appel à widget._parse() qui a été retiré plus haut.

On passait déjà sur les champs pour actualiser les options présentées, on y ajoute ici l'appel à widget._parse() qui a été retiré plus haut.
@ -691,1 +684,4 @@
fields_to_update = set()
for field in computed_fields_on_page:
if getattr(field, 'live_condition_source', False):
fields_to_update.update(field.live_condition_fields)
Author
Owner

Mais on ne prenait pas en compte la dépendance aux champs calculés, donc voilà ici.

Mais on ne prenait pas en compte la dépendance aux champs calculés, donc voilà ici.
@ -702,0 +696,4 @@
if 'options' in kwargs:
widget.options = kwargs['options']
widget.options_with_attributes = kwargs.get('options_with_attributes')
widget._parse(req)
Author
Owner

Voilà l'appel au widget._parse.

Voilà l'appel au widget._parse.
fpeters changed title from WIP: misc: check selected item field value against updated list of options (#73982) to misc: check selected item field value against updated list of options (#73982) 2023-09-27 08:17:22 +02:00
lguerin approved these changes 2023-10-02 18:40:23 +02:00
fpeters merged commit 20e5ce2c8a into main 2023-10-02 18:49:00 +02:00
fpeters deleted branch wip/73982-dynamic-data-source-prefilled-value 2023-10-02 18:49:01 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/wcs#727
No description provided.