Projet

Général

Profil

Development #30854

export/import des visualisations

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
24 février 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à BiJoe - Development #30859: fournir un slug aux cubes/warehouseFermé24 février 2019

Actions
Lié à BiJoe - Development #38596: Utiliser un slug plutôt qu'une url pour récupérer les données des visualisationsFermé17 décembre 2019

Actions

Révisions associées

Révision 621cfa92 (diff)
Ajouté par Valentin Deniaud il y a environ 4 ans

views: remove redirect from homepage to warehouse (#30854)

Révision b371cff3 (diff)
Ajouté par Valentin Deniaud il y a environ 4 ans

tests: move visualization creation to fixture (#30854)

Révision 44b2aec2 (diff)
Ajouté par Valentin Deniaud il y a environ 4 ans

misc: add visualization import/export (#30854)

Historique

#1

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

#2

Mis à jour par Valentin Deniaud il y a plus de 4 ans

  • Assigné à mis à Valentin Deniaud

Wish me luck

#3

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

#4

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.

#5

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.

#6

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à ?

#7

Mis à jour par Valentin Deniaud il y a plus de 4 ans

#8

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)

#9

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

#10

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.

#11

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é
#13

Mis à jour par Valentin Deniaud il y a plus de 4 ans

Voilà, commandes + UI, c'est majoritairement du copier-coller de ce qui avait été fait dans chrono (#15527 et #25985).

#14

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

#15

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>
#17

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 !

#18

Mis à jour par Valentin Deniaud il y a plus de 4 ans

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.

#20

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.

#21

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.

#22

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

Mis à jour par Valentin Deniaud il y a environ 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF