MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
1 stars 1 forks source link

Comportement inadéquat au survol d'une couche dans le panneau explorateur de QGIS #139

Closed StormKlaus closed 1 year ago

StormKlaus commented 1 year ago

Bonjour,

Suivant actuellement une formation sur PostgreSQL / PostGIS, j'ai été amené à faire une vue lors d'un exercice. Ma vue a été mal écrite en première instance et elle entraine un comportement qui me semble non désiré. La vue bien écrite ne génère évidemment pas ce comportement.

Description du comportement : Lorsque que je survole la vue en question avec ma souris dans le panneau explorateur de QGIS, sans cliquer, une fenêtre s'ouvre et me demande le SCR. On peut par la suite définir et valider le SCR dans cette fenêtre mais rien se passe par la suite. Le phénomène survient autant de fois que l'on survole cette vue mal écrite.

Voici le SQL (épuré) de ma vue mal écrite qui génère ce comportement :

CREATE VIEW travail.vue_zonage_pour_bug AS
SELECT
a.gid AS gid,
ST_POINT(
    (CASE WHEN b.gid IS NULL THEN ST_X(ST_CENTROID(a.geom)) ELSE b.x_etiq END),
    (CASE WHEN b.gid IS NULL THEN ST_Y(ST_CENTROID(a.geom)) ELSE b.y_etiq END)) AS geom
FROM  travail.zonage a
LEFT JOIN travail.zonage_etiq b ON a.gid = b.gid
;

Cordialement,

WREATCHED commented 1 year ago

Bjr @StormKlaus, Merci beaucoup pour ce retour. Plume effectivement prend en compte la gestion des infobulles dans l'explorateur et les réécrit afin de ne pas avoir de pollution visuelle avec les métadonnées au format Json-ld. Ce n'est pas forcément un bug de Plume, mais plutôt de QGis qui ne sait pas si retrouver avec les systèmes de projections non définis dans une requête. Je me penche pour corriger cela avec soit une suppression de ce type d'informations, soit un moyen de contourner le pb avec PostGIS.

alhyss commented 1 year ago

@WREATCHED Je flèche sur la v1.0 pour la solution court terme - correction si possible, à défaut suppression temporaire des informations sur le référentiel (voire le type de géométrie) dans les infobulles re-générées par Plume. S'il y a besoin de procéder en deux temps, on créera une seconde issue pour le second temps.

Merci pour le retour, @StormKlaus ! Les vues (ou même tables) avec des géométries sans référentiel ne sont pas un cas rare, il faut effectivement qu'on fasse en sorte que Plume ne complique pas les choses.

WREATCHED commented 1 year ago

@StormKlaus Peux-tu préciser la version de QGIS utilisée ? Merci

StormKlaus commented 1 year ago

Yes QGIS 3.22.6-Białowieża

WREATCHED commented 1 year ago

Effectivement si on modifie les options du SCR partout sauf "Demander le SCR", ça passe image

alhyss commented 1 year ago

@WREATCHED Il faudra peut-être aussi vérifier ce qui se passe avec les utilitaires d'aide à la saisie des géométries du formulaire de Plume dans ce cas, que QGIS soit paramétré pour demander le référentiel ou non.

WREATCHED commented 1 year ago

Analyse Dans la classe MyExploBrowser, j'instanciais un objet de type QgsVectorLayer. Qgis, même s'il ne charge pas la couche dans le CanVas(), lui la charge en mémoire et donc en l'absence de système de projection ou autre chose, fait apparaître la boite de dialogue de saisie des SRC. Même après avoir sélectionné un système Qgis, ne sauvegarde pas ce référentiel dans l'item du Browser et donc réitère l'affichage de la boite au survol de la souris. Solution Réécriture du code pour ne pas utiliser QgsVectorLayer mais comme je l'ai fait pour la gestion des ToolTip de AsgardMenu avec la syntaxe suivante self.proxy_model.data(index, Qt.ToolTipRole)

@StormKlaus je peux t'envoyer la correction pour tests et retour . Merci d'avance

WREATCHED commented 1 year ago

Retour @StormKlaus Le 31/05/2023 à 11:00, SALE Aurélien - DDTM 40/MCPT/PG a écrit : Bonjour à tous,

Le problème est en parti réglé.

Au survol : OK. Infobulle : OK ; Au clic (juste le focus/sélection dans l'explorateur) -> même comportement -> boîte de dialogue de QGIS pour le SCR. On valide le 2154 et rien.

Réponse @WREATCHED Aurélien, Je constate comme toi l'ouverture de la boite de dialogue de saisie des systèmes de projection. Et si je saisi le SRC, j'ai l'ouverture dans le CanVas et je n'ai pas de problème. Survol et constitution de l'infobulle : OK Simple clic , aucun événement n'y ouverture de boite et pas de blocage et apparition de l'infobulle : OK Double clic : Ouverture de la boite de dialogue des SRC et après choix, chargement de la couche et OK

Peux-tu m'expliquez ce qui ne va pas de ton coté ?

WREATCHED commented 1 year ago

Je viens de voir le comportement Au simple clic , il faut faire annuler pour que les métadonnées s'affiche dans l'IHM de Plume et que l'infobulle apparaisse.

StormKlaus commented 1 year ago

Oui, c'est au simple clic sur la couche, dans le panneau explorateur de QGIS, que je constate désormais ce comportement. (le survol est résolu)

Contexte : Quand j'étais en formation, le plugin était activé et le panneau fermé. Je n'avais pas pour objectif de l'utiliser et de m'en servir pour consulter les MD (sur le serveur formation le schéma z_asgard n'existe pas).

Ce comportement s'est imposé à moi avec cette mauvaise requête, j'ai d'ailleurs pas tout de suite compris que c'était lié à Plume. C'est lorsque que j'ai réussi à importer la donnée avec DB Manager que j'ai compris cela. Que j'ai par la suite désactivé l'extension et remarqué la disparition de ce comportement.

Description du comportement au simple clic : Sur notre serveur désormais, avec Plume d'activée et le panneau d'ouvert : Je peux effectivement faire 'annuler' comme tu l'a préconisé @WREATCHED , mais je suis obligé de le faire 3 fois avant de pouvoir consulter les MD dans Plume... (le nombre 3 est systématique). Et cela m'empêche de charger la donnée dans QGIS, même si celle-ci n'est pas propre ...

Au besoin, si vous le souhaitez, je peux faire une petite vidéo pour vous montrer cela. Ou un partage d'écran avec une application webconférence ?

WREATCHED commented 1 year ago

Je te retourne une nouvelle version, si tu peux tester avant

WREATCHED commented 1 year ago

Corrige

Je viens de terminer la correction pour le bug recensé ou plutôt le dysfonctionnement de Plume lorsque qu'une couche (SQL) n'est pas optimisée notamment pour son système de projection. Désormais Plume au survol affiche la toolTip modifiée ou non et au simple clic, demande une fois la boite de dialogue pour en saisir un. On peut ainsi gérer les MD même pour ce type de couche. Je viens de passez presque une heure avec Aurélien que je remercie pour sa disponibilité , sa réactivité et son efficacité. Il a eu sa part de contribution active pour nous dénicher des coquilles sous Plume.

Technique Complément des évènements QtCore.QEvent de ma classe MyExploBrowser