Project

General

Profile

Autre #50953

template widget custom et qommon.form.js live evaluation

Added by Thomas Jund almost 2 years ago. Updated almost 2 years ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
08 February 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

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) :

  1. Le widget a un gabarit django custom qui ajoute des data-attributs aux options, etc.
  2. 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).
  3. 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.
  4. 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

#1

Updated by Thomas Jund almost 2 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.

Also available in: Atom PDF