Projet

Général

Profil

Development #52498

cellule contenu d'une fiche, inclure dans l'HTML de l'édition des paramètres le schéma des données

Ajouté par Frédéric Péters il y a environ 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
30 mars 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à Combo - Development #52073: composition graphique grille ficheFermé16 mars 2021

Actions

Révisions associées

Révision 03f1ac9c (diff)
Ajouté par Lauréline Guérin il y a presque 3 ans

wcs: add card schema in manager form (#52498)

Historique

#1

Mis à jour par Frédéric Péters il y a environ 3 ans

(vraiment taper le truc brut, obtenu de .../api/cards/.../@schema)

#2

Mis à jour par Lauréline Guérin il y a environ 3 ans

  • Assigné à mis à Lauréline Guérin
#3

Mis à jour par Lauréline Guérin il y a environ 3 ans

#4

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.

#5

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 ?

#6

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.

#7

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.

#8

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

#9

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.

#10

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.

#11

Mis à jour par Lauréline Guérin il y a environ 3 ans

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)

#14

Mis à jour par Frédéric Péters il y a environ 3 ans

#15

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 ?

#16

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.

#17

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Solution proposée à Solution validée
#18

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)
#19

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

Formats disponibles : Atom PDF