Development #30854
export/import des visualisations
0%
Description
Pour passer recette/prod, ou pour déployer une configuration initiale standard, il faudrait pouvoir exporter/importer les visualisations.
Interrogation à porter ici sur l'information "warehouse", comme c'est basé sur le nom de domaine, ça va compliquer les choses.
Fichiers
Demandes liées
Révisions associées
tests: move visualization creation to fixture (#30854)
misc: add visualization import/export (#30854)
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Je note ici que ça aidera aussi aux évolutions sur la configuration des visualisations (si on change la façon de désigner un regroupement par exemple, on pourra gérer ça via export/import).
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Pour éviter de se baser sur le nom de domaine on pourrait faire évoluer wcs-olap pour donner le nom venant de KNOWN_SERVICES plutôt que le domaine (et garder le domaine pour le nom du schéma).
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Au fait je code l'UI comme c'est fait dans d'autres briques ou on se contente de commandes django admin ?
Benjamin Dauvergne a écrit :
Pour éviter de se baser sur le nom de domaine on pourrait faire évoluer wcs-olap pour donner le nom venant de KNOWN_SERVICES plutôt que le domaine (et garder le domaine pour le nom du schéma).
Ça me paraît être une bonne idée. Si je comprends bien cette info prendrait la forme d'un champ de plus dans le JSONField de Visualisation, donc ça n'impacte pas le code de l'import/export, mais ça lui ajoute un pré-requis bloquant qui est la modif dans olap.
Mis à jour par Frédéric Péters il y a plus de 4 ans
S'il n'y a pas d'UI ici il y aura un autre ticket pour ajouter de l'UI.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Frédéric Péters a écrit :
Interrogation à porter ici sur l'information "warehouse", comme c'est basé sur le nom de domaine, ça va compliquer les choses.
Benjamin Dauvergne a écrit :
Pour éviter de se baser sur le nom de domaine on pourrait faire évoluer wcs-olap pour donner le nom venant de KNOWN_SERVICES plutôt que le domaine (et garder le domaine pour le nom du schéma).
Oui bon donc mes investigations pour voir comment on fait ça m'ont naturellement conduit à me rendre compte que c'était déjà fait et à remonter jusqu'à #30858 et #30859. Du coup le commentaire de Benj me laisse confus, il y a vraiment quelque chose à faire en plus de ce côté là ?
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Lié à Development #30859: fournir un slug aux cubes/warehouse ajouté
Mis à jour par Frédéric Péters il y a plus de 4 ans
Mmm, à regarder #30859 et la prod, je ne vois nulle part de cubes_slug défini, ça ne marche sans doute pas :/ Et ensuite, il y aurait à vérifier ce qui se trouve dans la colonne parameters d'une visualisation, aujourd'hui un "warehouse": "schéma_dans_la_db", qui va faire que c'est <tenant>/schemas/<schéma_dans_la_db>.model qui va être chargé; ça devrait pouvoir être remplacé par "warehouse_slug": "whatever", ou "warehouse": "whatever", et que la recherche dans le wcs-olap.ini se fasse d'abord sur le slug puis sur le schema.
(il y a tant d'indirections diverses que je me perds peut-être)
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Frédéric Péters a écrit :
c'est <tenant>/schemas/<schéma_dans_la_db>.model qui va être chargé; ça devrait pouvoir être remplacé
Ce n'est pas ce que je lis, ce qui est chargé c'est <tenant>/schemas/*.model, donc on a pas besoin de remplacer quoique ce soit ici (ie le nom du fichier n'a pas d'importance (et le "schéma_dans_la_db" qui se retrouve dans l'attribut warehouse.name ne vient pas du nom du fichier mais d'une clé dans le json qu'il contient)).
Mmm, à regarder #30859 et la prod, je ne vois nulle part de cubes_slug défini, ça ne marche sans doute pas :/
Il y a un if new:
, donc si on a pas regénéré les .ini je suppose que le cubes_slug n'a jamais été posé.
Cette condition permet de ne pas changer le nom du warehouse en cours de route, parce que ça casserait toutes les visus existantes qui ont l'ancien nom dans leur JSONField.
Il faudrait donc réfléchir à une stratégie qui permette de migrer vers une utilisation des slugs. Du genre forcer une regénération des .ini puis faire tourner olap et vite lancer une data migration qui met à jour les parameters de toutes les visus...
Ou plus doux, ne pas remplacer le nom par le slug comme c'est fait actuellement mais simplement ajouter l'info, pour qu'on se retrouve avec warehouse.slug de dispo, et warehouse.name qui n'a pas bougé. Puis au moment d'afficher une visu, chercher avec le slug si visu.parameters['warehouse_slug'] existe, sinon le nom (dans visu.parameters['warehouse'] comme d'habitude. Et on a tout le temps de faire une migration qui enlève 'warehouse' et pose 'warehouse_slug'.
Mis à jour par Frédéric Péters il y a plus de 4 ans
Il y a un if new:, donc si on a pas regénéré les .ini je suppose que le cubes_slug n'a jamais été posé.
Sauf qu'il est étonnant qu'il n'y ait pas eu de nouveau déploiement depuis que ça existe.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Lié à Development #38596: Utiliser un slug plutôt qu'une url pour récupérer les données des visualisations ajouté
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-misc-add-visualization-import-export-30854.patch 0002-misc-add-visualization-import-export-30854.patch ajouté
- Fichier 0001-tests-move-visualization-creation-to-fixture-30854.patch 0001-tests-move-visualization-creation-to-fixture-30854.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Ah et il y a quand même un bug mystérieux, c'est que mes vues /export soit ne réagissent pas au clic soit affichent le json, au lieu de le télécharger. Pas trouvé ce qui contrôle le comportement du navigateur à ce niveau là.
Mis à jour par Frédéric Péters il y a plus de 4 ans
- <a class="button" href="{% url "export-visualization" pk=object.pk %}">{% trans "Export as JSON" %}</a> + <a download class="button" href="{% url "export-visualization" pk=object.pk %}">{% trans "Export as JSON" %}</a>
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Ah oui ça avait été ajouté à posteriori dans chrono donc j'étais passé à côté, merci !
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-misc-add-visualization-import-export-30854.patch 0002-misc-add-visualization-import-export-30854.patch ajouté
- Fichier 0001-tests-move-visualization-creation-to-fixture-30854.patch 0001-tests-move-visualization-creation-to-fixture-30854.patch ajouté
Avec un kebab.
Je note aussi qu'il y a un comportement qui redirige automatiquement de la page d'accueil vers la page du warehouse si c'est le seul et qu'il n'y a pas encore de visu. Ça ajoute un cas à gérer pour être sûr qu'on puisse voir le bouton d'import. Ça rend un peu étrange, je serais plutôt pour supprimer cette redirection qui ne m'a pas l'air très utile.
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Fichier 0002-misc-add-visualization-import-export-30854.patch 0002-misc-add-visualization-import-export-30854.patch ajouté
- Fichier 0001-tests-move-visualization-creation-to-fixture-30854.patch 0001-tests-move-visualization-creation-to-fixture-30854.patch ajouté
Correction d'indentations et autres trucs mineurs.
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
Valentin Deniaud a écrit :
Avec un kebab.
Je note aussi qu'il y a un comportement qui redirige automatiquement de la page d'accueil vers la page du warehouse si c'est le seul et qu'il n'y a pas encore de visu. Ça ajoute un cas à gérer pour être sûr qu'on puisse voir le bouton d'import. Ça rend un peu étrange, je serais plutôt pour supprimer cette redirection qui ne m'a pas l'air très utile.
Ok pour virer.
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
Je valide mais faudrait rebaser sur master je pense.
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 44b2aec23636b18c6f71aa25e14924d326271e1b Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Mon Dec 16 16:23:10 2019 +0100 misc: add visualization import/export (#30854) commit b371cff33e2f17d1a1eefc85ef706506d38dfddc Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Wed Dec 18 12:09:09 2019 +0100 tests: move visualization creation to fixture (#30854) commit 621cfa9250682cf32a92808f568a67dfb6fe089e Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Tue Jan 28 10:25:08 2020 +0100 views: remove redirect from homepage to warehouse (#30854)
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
views: remove redirect from homepage to warehouse (#30854)