Closed alhyss closed 2 years ago
Corrigé pour la v0.4 bêta.
Il a dû se passer quelque chose avec le CSW de GéoIDE qui l'a récemment rendu moins permissif, mais c'était totalement de ma faute quoi qu'il en soit. La fonction plume.iso.csw.getrecordbyid_request
qui génère la requête à envoyer au CSW produisait des chaînes de caractères en encodage-pourcent, qui était ensuite fournies en argument au constructeur de la classe PyQt5.QtCore.QUrl
(dans plume.importcsw.Ui_Dialog_ImportCSW.returnXml
), lequel... les convertissait de nouveau en encodage-pourcent.
Tous les %
du premier passage en encodage-pourcent étaient transformés en %25
lors du second. On se retrouvait avec des horreurs de ce genre :
'https://ogc.geo-ide.developpement-durable.gouv.fr/csw/dataset-harvestable?service=CSW&REQUEST=GetRecordById&version=2.0.2&namespace=xmlns%253Acsw%253Dhttp%253A%252F%252Fwww.opengis.net%252Fcat%252Fcsw&outputFormat=application%252Fxml&outputSchema=http%253A%252F%252Fwww.isotc211.org%252F2005%252Fgmd&ElementSetName=full&Id=fr-120066022-ldd-ccc7f695-94bd-4415-a184-ce261e91c0a8'
Très logiquement le CSW de GéoIDE renvoyait une erreur pour cause de valeur invalide pour le paramètre outputFormat
. Il est même surprenant que ce soit passé jusque-là (et encore aujourd'hui avec tous les autres CSW que j'ai testés).
Bref, j'ai amendé plume.iso.csw.getrecordbyid_request
pour qu'elle renvoie des URL brutes et pas en encodage-pourcent, ce qui suffit à résoudre le problème.
@WREATCHED Pour ne rien arranger, je perds complètement la tête avec le point de moissonnage de GéoIDE. Si ce n'est dans la doc, j'avais changé partout dataset-harvestable
en harvestable-dataset
, alors que le premier était le bon (l'autre marche, mais n'est pas censé exister et ne renvoie pas toutes les fiches) ! Est-ce que tu peux t'assurer que l'URL que Plume enregistre dans le QGIS3.ini
est bien http://ogc.geo-ide.developpement-durable.gouv.fr/csw/dataset-harvestable
, vu la capture de la DDT 16, je crains que ce ne soit pas le cas ? Tant qu'à faire, ce serait bien d'en profiter pour ajouter celui de l'IGN : https://wxs.ign.fr/catalogue/csw
. Exemple d'identifiant, si tu veux tester : IGNF_ADMIN_EXPRESS_3-1.xml
. Il va falloir qu'on dise à nos testeurs de vider la section Plume de leur QGIS3.ini
...
@WREATCHED D'ailleurs, je viens de voir qu'il n'était pas possible de faire de clic droit + supprimer sur la ligne http://ogc.geo-ide.developpement-durable.gouv.fr/csw/harvestable-dataset
dans le tableau des CSW. Est-ce que celui-là est volontairement verrouillé ? Si oui, je ne sais pas si c'est tellement souhaitable. Même en admettant qu'il ne soit pas trop gênant pour des services dont les données ne sont pas sur GéoIDE de l'avoir dans leur liste, si l'URL change pour une raison ou pour une autre ça rend la correction manuelle encore plus difficile puisqu'il devient nécessaire d'aller dans le QGIS3.ini
.
Oui, c'est toi qui m'as demandé de verrouiller l'url par défaut de GéoIDE
Ok. C'est vrai que ça minimise les chances de la perdre par accident, mais ça pose d'autres problèmes... Je reviendrais bien là-dessus. Qu'en penses-tu ?
Résolu dans la 0.4 Bêta Création d'un qgis3ini_update.py contenant une fonction "updateQgis3ini" Cette dernière ligne 10 et 14 peut faire l'objet de modification
#Sauvegarde des paramétres de la section PLUME dans le QGIS3.INI
#==================================================
def updateQgis3ini() :
#=============
#=============
refVersion = 1 # Modifier cet indice (ajouter un incrément + 1 par exemple) pour mettre à jour les nouvelles valeurs par defaut qui se trouve dans :
#============= # bibli_plume.py ==> fonction def returnAndSaveDialogParam(self, mAction):
#=============
#============= # Liste des clés à forcer poru mise à jour si refVersion est supérieure à refVersionQgis3ini
mListKeyForceUpdate = ["fileHelpPdf", "fileHelpHtml", "urlCswDefaut", "urlCswIdDefaut"]
#=============
#=============
ret = False
Modifier refVersion = 1 par exemple en refVersion = 2 pour forcer la mise à jour des informations existantes ou pas dans le QGI3.INI, mais** uniquement celle contenues dont les clés sont listées dans la liste ci-dessous par exemple
mListKeyForceUpdate = ["fileHelpPdf", "fileHelpHtml", "urlCswDefaut", "urlCswIdDefaut"]
Bilan suite à discussion LL with DL Changements :
Réponse en image
Signalé par la DDT 16 :