From 839eb525e4f851eb5e8b7ab4d865401e711f845d Mon Sep 17 00:00:00 2001 From: Tom LAVEILLE Date: Mon, 7 Oct 2024 17:17:27 +0200 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"CenRa=5FFLUX"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CenRa_FLUX/FluxCEN.py | 48 ++++++++++++++++++++++++++++++++++++++--- CenRa_FLUX/metadata.txt | 4 +++- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/CenRa_FLUX/FluxCEN.py b/CenRa_FLUX/FluxCEN.py index 31ad09ca..b01ef815 100644 --- a/CenRa_FLUX/FluxCEN.py +++ b/CenRa_FLUX/FluxCEN.py @@ -34,6 +34,8 @@ import os.path, os, shutil from qgis.core import * from qgis.gui import * from qgis.utils import * +from .forms.about_form import FluxAboutDialog +import qgis import processing import psycopg2 import psycopg2.extras @@ -136,6 +138,14 @@ class FluxCEN: 'i18n', 'FluxCEN_{}.qm'.format(locale)) + version = qgis.utils.pluginMetadata('CenRa_FLUX','version') + # Display About window on first use + s = QSettings() + versionUse = s.value("flux/version", 1, type=str) + if str(versionUse) != str(version) : + s.setValue("flux/version", str(version)) + self.open_about_dialog() + if os.path.exists(locale_path): self.translator = QTranslator() self.translator.load(locale_path) @@ -205,6 +215,10 @@ class FluxCEN: # else: # iface.messageBar().pushMessage("Information :", "Une nouvelle version de FluxCEN est disponible, veuillez mettre à jour le plugin !", level=Qgis.Info, duration=120) + def open_about_dialog(self): + dialog = FluxAboutDialog(self.iface) + dialog.exec_() + def _mousePressEvent(self, event): self.dlg.lineEdit.setText("") self.dlg.lineEdit.mousePressEvent = None @@ -338,6 +352,7 @@ class FluxCEN: self.iface.removeToolBarIcon(action) def bd_source(self): + self.dlg.activateWindow() bd_origine=self.dlg.comboBox_2.currentText() if bd_origine == 'REF': self.run_ref() @@ -713,13 +728,40 @@ class FluxCEN: table = self.dlg.tableWidget_2.item(row,2).text()#.split("?", 1)[0] uri = QgsDataSourceUri() uri.setConnection(host ,port ,dbtype ,user ,mdp) + # nom du schéma à remplacer: "hydrographie" à supprimer et mettre "couches_collaboratives" lorsqu'on aura regroupé les couches à modifier dans un même schéma + uri.setDataSource(schema, table, "geom") uri.setKeyColumn('gid') + # Chargement de la couche PostGIS - layer = QgsVectorLayer(uri.uri(), table, "postgres") - # Ajout de la couche au canevas QGIS - QgsProject.instance().addMapLayer(layer) + geom_type ='SELECT right(st_geometrytype(geom),-3) as a FROM '+schema+'.'+table+' GROUP BY a' + cur.execute(geom_type) + list_typegeom = cur.fetchall() + print(len(list_typegeom)) + if len(list_typegeom) > 1: + for typegeom in list_typegeom: + if typegeom[0] == 'MultiPolygon': + uri.setWkbType(QgsWkbTypes.MultiPolygon) + elif typegeom[0] == 'MultiLineString': + uri.setWkbType(QgsWkbTypes.MultiLineString) + elif typegeom[0] == 'Point': + uri.setWkbType(QgsWkbTypes.Point) + if typegeom[0] == 'Polygon': + uri.setWkbType(QgsWkbTypes.Polygon) + elif typegeom[0] == 'LineString': + uri.setWkbType(QgsWkbTypes.LineString) + elif typegeom[0] == 'MultiPoint': + uri.setWkbType(QgsWkbTypes.MultiPoint) + if (typegeom[0] != None and typegeom[0] != 'Polygon'): + uri.setSrid('2154') + layer = QgsVectorLayer(uri.uri(), table, "postgres") + # Ajout de la couche au canevas QGIS + QgsProject.instance().addMapLayer(layer) + else: + layer = QgsVectorLayer(uri.uri(), table, "postgres") + # Ajout de la couche au canevas QGIS + QgsProject.instance().addMapLayer(layer) ''' try: service = re.search('SERVICE=(.+?)&VERSION', self.dlg.tableWidget_2.item(row,4).text()).group(1) diff --git a/CenRa_FLUX/metadata.txt b/CenRa_FLUX/metadata.txt index c68c89df..0208c39d 100644 --- a/CenRa_FLUX/metadata.txt +++ b/CenRa_FLUX/metadata.txt @@ -6,7 +6,7 @@ name=CenRa_FLUX qgisMinimumVersion=3.0 description=Permet d'ouvrire une table dans la base PostGis -version=1.9 +version=1.14 author=Conservatoire d'Espaces Naturels de Rhône-Alpes email=si_besoin@cen-rhonealpes.fr @@ -32,6 +32,8 @@ icon=cenra.png # experimental flag experimental=False +changelog=

CenRA_FLUX:


03/10/2024 - Version 1.14:

- Remonte la fênetre dans la pille.

13/09/2024 - Version 1.13:

- MAJ sur le lien du changelog
- Bug-fix: Ouvre MultiPolygone et Polygon séparément.


10/09/2024 - Version 1.11:

- Ouverture de table contenant plusieurs géométries.


26/08/2024 - Version 1.10:

- Ajoute d'un changelog et vérification de mise à jour.

+ # deprecated flag (applies to the whole plugin, not just a single version) deprecated=False