Development #52498
cellule contenu d'une fiche, inclure dans l'HTML de l'édition des paramètres le schéma des données
0%
Description
Dans une variable js, façon {{ schema|json_script:"schema" }}, genre.
Sur cette base Thomas pourra ensuite jouer du js pour avoir un bouton personnaliser pour définir le rendu.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a environ 3 ans
(vraiment taper le truc brut, obtenu de .../api/cards/.../@schema)
Mis à jour par Lauréline Guérin il y a environ 3 ans
- Fichier 0001-wcs-add-card-schema-in-manager-form-52498.patch 0001-wcs-add-card-schema-in-manager-form-52498.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans
Au chargement de la page, une cellule "Contenu d’une fiche" présente le Json (si modèle et id renseigné et existant).
Mais rien à l'ajout d'une nouvelle cellule (même après avoir clické sur "enregistré").
Aucun changement lors de la modification d'une cellule existante.
Ensuite, l'identifiant du script est "card_schema-eservices:{{ model_name }}"
Si on créé 2 cellules avec le même modèle, mais 2 id de fiches différentes (par ex: enfant 1 et enfant 2) on se retrouve avec 2 scripts (identiques ?) avec le même id.
Mis à jour par Lauréline Guérin il y a environ 3 ans
Mais rien à l'ajout d'une nouvelle cellule (même après avoir clické sur "enregistré").
Parce que le block est refresh en ajax et qu'il en manque un bout, j'ai remarqué ce comportement mais je me suis dit que tu pourrais refresh la page :)
Si on créé 2 cellules avec le même modèle, mais 2 id de fiches différentes (par ex: enfant 1 et enfant 2) on se retrouve avec 2 scripts (identiques ?) avec le même id.
En effet. Je peux y coller l'id de la cellule pour garantir l'unicité, ça t'empêchera pas de manipuler le schema ?
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans
j'ai remarqué ce comportement mais je me suis dit que tu pourrais refresh la page
Pour commencer à bosser oui, mais définir ce comportement comme acceptable in fine. non.
En effet. Je peux y coller l'id de la cellule pour garantir l'unicité
Ça règle le problème de la duplication de l'id, mais pas du fait d'avoir 2x le même code inutilement dans la page.
ça t'empêchera pas de manipuler le schema ?
Bonne question. Je ne sais pas encore.
Pour moi la meilleure pratique aurait été de chercher le schéma via une requête ajax à l'ouverture d'une cellule déjà personnalisée ou via une action sur un bouton "personnaliser" et lancer cette requête uniquement si le json n'est pas déjà présent.
Ça évite de les charger inutilement au chargement de la page et de potentiellement les charger plusieurs fois.
C'est pas le choix qui a été fait.
Si c'est pas possible de ne charger qu'une seule fois le json dans le cas où plusieurs cellules avec le même schéma sont présentes, alors je dirais de ne pas utiliser d'id, mais une class.
Mis à jour par Frédéric Péters il y a environ 3 ans
alors je dirais de ne pas utiliser d'id, mais une class
On parle de l'id(entifiant) de la cellule, pas d'un id (attribut) HTML.
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans
alors je dirais de ne pas utiliser d'id, mais une class.
J'ai pas du être assez précis.
Je propose
<!-- class instead id --> <script class="card_schema-eservices:{{ model }}" type="application/json">…</script>
Et de ne pas utiliser l'identifiant de la cellule
Pour permettre qu'il y en ai plusieurs par page et moi je ne parse que le premier que je trouve. Parce qu'au final on s'en fout d'avoir 5x le même json avec 5 ids différents.
(Dans le cas cas où ce n'est pas possible de limiter à un seul schéma par page, ce qui est dommage).
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 3 ans
Autre pensée.
Rien n'est disponible (ni pour le code JS ni pour l'usager) pour indiquer si le couple model + id existe, autre que la présence ou non du json dans la cellule.
Mis à jour par Frédéric Péters il y a environ 3 ans
Le contenu du <script> vient d'un templatetag django (|jsonscript), il ne pourra pas être structuré différemment.
Je dirais aussi qu'il ne faut pas trop se prendre la tête sur la répétition ici, et je serais pour que soit exploité celui de la cellule concerné (donc oui inclure l'identifiant de cellule), que chaque cellule soit bien comprise comme indépendante.
Mis à jour par Lauréline Guérin il y a environ 3 ans
- Fichier 0001-wcs-add-card-schema-in-manager-form-52498.patch 0001-wcs-add-card-schema-in-manager-form-52498.patch ajouté
id de la cellule ajouté, et lorsqu'on sélectionne une card pour la première fois on ajoute bien le script (pas besoin de reload la page)
Mis à jour par Frédéric Péters il y a environ 3 ans
- Lié à Development #52073: composition graphique grille fiche ajouté
Mis à jour par Frédéric Péters il y a presque 3 ans
Pour moi ce serait ok, pour être sûr : Thomas(J), ça te semble exploitable ainsi ?
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a presque 3 ans
C'est en tout cas sous cette forme que j'ai commencé à l'exploiter, en utilisant le varname comme identifiant de référence.
On peut partir là dessus.
Mis à jour par Frédéric Péters il y a presque 3 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Lauréline Guérin il y a presque 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 03f1ac9cd0ad4e6697f0f3b3192841a88769a0a1 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Thu Apr 8 10:57:37 2021 +0200 wcs: add card schema in manager form (#52498)
Mis à jour par Frédéric Péters il y a presque 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
wcs: add card schema in manager form (#52498)