Autre #50953
template widget custom et qommon.form.js live evaluation
0%
Description
En travaillant sur l'écriture d'un widget custom calendar https://dev.entrouvert.org/issues/50311, je suis confronté à la mise à jour à la volée d'un widget liste ayant un template custom (un peu comme template-meeting).
Je trouve la logique vraiment tordue. Je résume en prenant l'exemple de template-metting (select--meeting.html) :
- Le widget a un gabarit django custom qui ajoute des data-attributs aux options, etc.
- quand on change un widget qui doit mettre à jour notre liste, une requête ajax est lancée (qommon.forms.js l.286 https://git.entrouvert.org/wcs.git/tree/wcs/qommon/static/js/qommon.forms.js#n286).
- La requête retourne un Json et la function JS va vider la liste pour la re-remplir à partir du Json, mais ce template est générique et n'a rien à voir avec le template custom écrit dans le gabarit django.
- Il faut alors que dans le template custom en question, re-vider la liste qui vient d’être remplie en JS pour réécrire à nouveau le template custom en JS.
La liste est donc vidée -> remplie -> re-vidée -> re-remplie.
Le template custom a besoin d'être écrit en django et en JS.
Ce qui me parait un tantinet lourd et compliqué.
Ticket pour discuter autour de ce fonctionnement.
History
Updated by Thomas Jund almost 4 years ago
Je me demande s'il ne serait pas préférable que la requête ajax retourne un render html du gabarit django plutôt qu'un json (ou les 2).
`qommon.form.js` injecte le nouveau markup, plus besoin de réécrire le template en JS et le DOM n'est modifié qu'une seule fois.