Development #15043
Permettre à l'usager/agent de gérer en frontoffice le contenu / la position de certaines cellules (tableau de bord)
0%
Description
L'idée c'est la production d'un tableau de bord que l'usager composerait en agençant différentes cellules.
- pouvoir marquer ce qui servira de zone d'accueil de ces cellules (on ne veut pas tout laisser être modifié), cellule de type "dashboard" (?)
- pouvoir associer une cellule à un usager (foreign key user à ajouter au modèle CellBase)
- une "API" pour permettre l'ajout de cellules (/dashboard/<dashboard_cell_id>/add?type=linkcell&title=plop&url=http://... pour l'ajout d'un signet, par exemple)
- pareil pour la suppression
- de l'UI à creuser au-dessus de tout ça
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a environ 7 ans
"Plan".
Avoir DashboardCell(CellBase) pour faire "contenant", et à côté TileCell(CellBase), pour les tuiles/widgets/etc. qu'on peut ajouter au tableau de bord. C'est dans TileCell qu'on a foreign key dashboard et foreign key user (i.e. on n'ajoute pas ça à toutes les cellules), null=True, pour se permettre d'ajouter ces cellules "tuiles" à d'autres endroits.
Pur déclaratif, et comme on a aujourd'hui dans BlurpCell, une méthode get_cell_types() pour donner l'impression de différents types de cellule.
Dans le settings.TILES déclarant les tuiles :- key (qui sert aussi à déterminer le template à prendre),
- label,
- config (ou url de config), qui serait "en gros" un formdef.to_json(), ça sert après à ajouter ces infos au contexte de rendu,
- data url, qui serait une url récupérée pour le rendu
(TileCell, ça peut aussi être TileCell(JsonCell), à voir)
Mis à jour par Frédéric Péters il y a presque 7 ans
- Fichier 0001-add-initial-support-for-custom-user-dashboards-15043.patch 0001-add-initial-support-for-custom-user-dashboards-15043.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Plan plusieurs fois révisé depuis pour arriver à la proposition attachée, qui permet d'être opérationnel sur le guichet grand lyon, i.e. ça dépend de trucs spécifiques grand-lyon-gnm dans publik-base-theme, et du coup la cellule est désactivée par défaut.
Ça ajoute DashboardCell, qui est une cellule normale, dont le job est de servir de conteneur pour des tuiles, basiquement ça fait que son render() est une boucle affichant chacune des tuiles.
Les tuiles, c'est l'objet Tile, c'est une référence à une cellule et à un utilisateur. (également à un dashboard mais dans la pratique on considère pour le moment un seul dashboard par site).
Il n'y a pas de création de tuile ex nihilo, ça fonctionne pour le moment plus sur le modèle du "favori", i.e. on ajoute une cellule existante comme tuile à son tableau de bord. Dans la pratique, une cellule qui veut pouvoir être ajoutée au tableau de bord fait un include de combo/dashboard_cell_icons.html, qui ajoutera une icône "mettre en favori".
Pour la suppression, quand il y a rendu d'une cellule on voit que c'est en fait une tuile (ça oblige à mettre un peu de la logique du dashboard dans le combo/public/views.py) et dans ce cas on ajoute "in_dashboard" au contexte, ce qui permet à combo/dashboard_cell_icons.html de mettre un menu de suppression plutôt qu'une icône "mettre en favori".
(Dans une phase ultérieure, pour d'autres besoins, il y a aura vraisemblablement la création/configuration, mais je sors ça de ce ticket)
Plus tard aussi, le dragndrop pour réagencer les tuiles. Dans ce cadre, peut-être, plutôt qu'un simple "order", ça divisera ça en order_x/order_y, pour imaginer un tableau de bord comme on avait univcloud.
Mis à jour par Frédéric Péters il y a presque 7 ans
Mis à jour par Frédéric Péters il y a presque 7 ans
- Fichier 0001-general-add-initial-support-for-custom-user-dashboar.patch 0001-general-add-initial-support-for-custom-user-dashboar.patch ajouté
(j'avais oublié d'inclure cinq lignes de js)
Mis à jour par Frédéric Péters il y a presque 7 ans
Mis à jour par Frédéric Péters il y a presque 7 ans
Mis à jour par Frédéric Péters il y a presque 7 ans
- Lié à Development #16300: cellule json : rendu direct quand le json est dans le cache ajouté
Mis à jour par Frédéric Péters il y a presque 7 ans
- Lié à Development #16301: passer par le templatetag render_cell pour le rendu ajax ajouté
Mis à jour par Frédéric Péters il y a presque 7 ans
- Fichier 0001-general-add-initial-support-for-custom-user-dashboar.patch 0001-general-add-initial-support-for-custom-user-dashboar.patch ajouté
Actualisé avec des modifs sur le MANIFEST.in pour distribuer les templates et static.
Mis à jour par Frédéric Péters il y a presque 7 ans
Aussi, c'est déployé sur https://portail-citoyen.guichet-recette.grandlyon.com/ pour tester.
Mis à jour par Thomas Noël il y a presque 7 ans
Ack
Je le dis dans ce ticket :- un seul dashboard par site (parce que sinon, de toute façon, les UIs sont pas simples)
- exemple d'utilisation à GNM, qui ajoute ce qu'il faut en html/js/css pour que ça marche (ça ne marche pas tout seul)
Mis à jour par Frédéric Péters il y a presque 7 ans
- Statut changé de En cours à Résolu (à déployer)
Merci,
un seul dashboard par site (parce que sinon, de toute façon, les UIs sont pas simples)
Yep, à noter que dans des évolutions futures, ça pourrait être plus fin que ça, par exemple le dashboard "liens favoris" pourrait être différent du dashboard "événements favoris", ou autre exemple en rapport avec le portail agent. Mais ça demande une évolution qui serait l'ajout de tuile depuis le dashboard plutôt que depuis la tuile.
exemple d'utilisation à GNM, qui ajoute ce qu'il faut en html/js/css pour que ça marche (ça ne marche pas tout seul)
Oui et je viens de pousser ces styles; c'est particulier GNM parce qu'ils sont en mode "progressive web app" et que du coup je n'ai pas réfléchi pour un publik normal, je verrai rapidement pour avoir des styles convenables.
commit cc84f3c5be708c04b7f6f2824841457ebca717bd Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri May 12 14:06:55 2017 +0200 general: add initial support for custom user dashboards (#15043)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
general: add initial support for custom user dashboards (#15043)