https://dev.entrouvert.org/https://dev.entrouvert.org/favicon.ico?15861920342020-11-04T17:19:44ZRedmine Entr’ouvertw.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2692832020-11-04T17:19:44ZNicolas Roche (absent jusqu'au 3 avril)
<ul><li><strong>Fichier</strong> <a href="/attachments/49337">0001-blocks-add-page-post-condition-test-on-block-47715.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/49337/0001-blocks-add-page-post-condition-test-on-block-47715.patch">0001-blocks-add-page-post-condition-test-on-block-47715.patch</a> ajouté</li><li><strong>Patch proposed</strong> changé de <i>Non</i> à <i>Oui</i></li></ul>Quand on arrive dans le filtre getlist (<em>wcs/qommon/templatetags/qommon.py::getlist</em>) :
<ul>
<li>depuis l'inspecteur on a un LazyFieldVarBlock<br /><pre>
pdb> mapping
<wcs.variables.LazyFieldVarBlock object at 0x7fbad4858d00>
</pre></li>
<li>mais en sortie de page on a une chaîne :<br /><pre>
pdb> mapping
'test, test'
</pre></li>
</ul>
<p>Voici un test qui permet de reproduire ce second point.<br /><em>(je n'ai pas trouvé comment corriger)</em></p> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2693062020-11-05T01:40:18ZThomas Noël
<ul></ul><p>Certainement parce que les conditions de sortie ne sont pas évaluées en mode lazy.</p> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2696312020-11-06T07:38:01ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Patch proposed</strong> changé de <i>Oui</i> à <i>Non</i></li></ul> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2699132020-11-07T22:34:46ZNicolas Roche (absent jusqu'au 3 avril)
<ul><li><strong>Fichier</strong> <a href="/attachments/49416">0001-blocks-allow-2nd-page-post-condition-on-blocks-47715.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/49416/0001-blocks-allow-2nd-page-post-condition-on-blocks-47715.patch">0001-blocks-allow-2nd-page-post-condition-on-blocks-47715.patch</a> ajouté</li></ul><p>Je n'ai pas réussi à faire fonctionner le test fourni (avec la condition en première page) : dans <em>wcs/fields.py:PageCondition:get_data</em>, l'instruction<br /><pre>
data = super(PageCondition, self).get_data()
</pre><br />ne renseigne pas <code>data['form']['var']._data</code> qui permettrai sinon de récupérer une variable lazy pour le block.<br />Ie: si l'on met la condition sur la première page, alors l'attribut data de l'objet FormData est <code>{}</code> ; je n'ai pas compris comment est chargé cet attribut.</p>
<p>J'ai réécrit le test en déplaçant la condition de sortie sur une seconde page.<br />Dans ce cas passer le test, il suffit de supprimer la valeur "non lazy" du contexte django :<br /><pre>
diff --git a/wcs/fields.py b/wcs/fields.py
index ca9cc9ec..4a7829ec 100644
--- a/wcs/fields.py
+++ b/wcs/fields.py
@@ -1958,2 +1958,3 @@ class PageCondition(Condition):
data.update(form_live_data)
+ data.pop('form_var_blockfoo')
return data
</pre></p>
<p>Ci-joint un patch qui tente de corriger le problème observé, mais uniquement en seconde page,<br />et pour information seulement car je pense qu'une correction partielle du problème risque d’amener encore plus de confusion.</p> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2699192020-11-08T08:35:47ZFrédéric Pétersfpeters@entrouvert.com
<ul></ul><p>Non, je ne pense pas que retirer une par une les variables statiques soit la solution; on doit pouvoir je pense aujourd'hui assurer que sur du rendu de gabarit, seules les parties "lazy" soient utilisées.</p> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2699202020-11-08T08:38:20ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Assigné à</strong> mis à <i>Frédéric Péters</i></li></ul><p>Ça pourrait être compliqué, je m'en occuperai.</p> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2740832020-11-28T18:45:28ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Fichier</strong> <a href="/attachments/49974">0003-general-update-formdata-in-context-for-lazy-evaluati.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/49974/0003-general-update-formdata-in-context-for-lazy-evaluati.patch">0003-general-update-formdata-in-context-for-lazy-evaluati.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/49975">0002-tests-check-access-to-_live_-attributes-after-condit.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/49975/0002-tests-check-access-to-_live_-attributes-after-condit.patch">0002-tests-check-access-to-_live_-attributes-after-condit.patch</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/49976">0001-tests-check-post-condition-using-getlist-on-block-47.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/49976/0001-tests-check-post-condition-using-getlist-on-block-47.patch">0001-tests-check-post-condition-using-getlist-on-block-47.patch</a> ajouté</li><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>Solution proposée</i></li><li><strong>Patch proposed</strong> changé de <i>Non</i> à <i>Oui</i></li></ul><p>Dans la branche 0001 qui est le test produit par Nicolas, 0002 qui est le test produit dans <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: accès aux attributs _live_ après une page contenant des conditions (Fermé)" href="https://dev.entrouvert.org/issues/48950">#48950</a> (accès à l'attribut live après des conditions) (uniquemenent le test, pas la correction); et 0003 est le patch qui corrige le tout, en laissant la partie "ConditionVars" à l'évaluation statique uniquement, en modifiant plutôt le FormData disponible dans le contexte, pour lui ajouter les nouvelles données des champs.</p> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2742502020-11-30T14:45:34ZThomas Noël
<ul><li><strong>Statut</strong> changé de <i>Solution proposée</i> à <i>Solution validée</i></li></ul><p>... en groupant tout ça en un seul commit ; ou pas.</p> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2742512020-11-30T14:48:12ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Solution validée</i> à <i>Résolu (à déployer)</i></li></ul><p>Deux commits pour garder l'attribution à Nicolas,</p>
<pre>
commit b525483e36a216f783d68a9c4fbf47dd168eb671
Author: Frédéric Péters <fpeters@entrouvert.com>
Date: Sat Nov 28 18:47:55 2020 +0100
general: update formdata in context for lazy evaluation (#47715)
commit d0fd141fb18a6471cc8cc3439040278302697418
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date: Wed Nov 4 18:12:39 2020 +0100
tests: check post-condition using |getlist on block (#47715)
</pre> w.c.s. - Bug #47715: Le filtre getlist + sum ne fonctionne pas dans les conditions de sortie de pagehttps://dev.entrouvert.org/issues/47715?journal_id=2743142020-11-30T17:16:17ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Résolu (à déployer)</i> à <i>Solution déployée</i></li></ul>