From 2690220a02dde12defa817eb90ef3edda50f3359 Mon Sep 17 00:00:00 2001
From: Tom LAVEILLE
Date: Wed, 23 Jul 2025 16:00:36 +0200
Subject: [PATCH] Vue du type vecteur ou raster dans SIG
---
CenRa_FLUX/flux_editor.py | 106 ++++++++++--------
CenRa_FLUX/metadata.txt | 6 +-
.../icons/{mIconWfs.svg => mIconVecteur.svg} | 0
plugins.xml | 6 +-
4 files changed, 64 insertions(+), 54 deletions(-)
rename CenRa_FLUX/tools/icons/{mIconWfs.svg => mIconVecteur.svg} (100%)
diff --git a/CenRa_FLUX/flux_editor.py b/CenRa_FLUX/flux_editor.py
index 3fd3cff..9421951 100644
--- a/CenRa_FLUX/flux_editor.py
+++ b/CenRa_FLUX/flux_editor.py
@@ -59,6 +59,16 @@ import base64
global DeBUG
DeBUG = 0
+itemIconRaster = QTableWidgetItem()
+icon = QIcon()
+icon.addPixmap(QtGui.QPixmap(resources_path('icons','mIconRaster.svg')), QIcon.Mode(0), QIcon.State(1))
+itemIconRaster.setIcon(icon)
+
+itemIconVecteur = QTableWidgetItem()
+icon = QIcon()
+icon.addPixmap(QtGui.QPixmap(resources_path('icons','mIconVecteur.svg')), QIcon.Mode(0), QIcon.State(1))
+itemIconVecteur.setIcon(icon)
+
try:
account = login_base('account')
user = account[0]
@@ -69,10 +79,9 @@ try:
sigdb = account[5]
refdb = account[6]
-
-
except:
- print('')
+ print('Fails to login DB for account')
+
EDITOR_CLASS = load_ui('CenRa_Flux_base.ui')
html = '''
@@ -463,7 +472,7 @@ var Travaux = L.geoJSON(TravauxJSON,{
RasterList.append(rasterFind[0])
self.tableWidget.setRowCount(len(list_schema))
- self.tableWidget.setColumnCount(3)
+ self.tableWidget.setColumnCount(4)
i=0
for value in list_schema:
if dbtype == sigdb:
@@ -490,63 +499,60 @@ var Travaux = L.geoJSON(TravauxJSON,{
schema_name=str(value[0])
table_name=str(value[1])
elif type_val != '00' and type_val != '01' and type_val != '07' and type_val != '26' and type_val != '42' and type_val != '69' and type_val != 'ra':
- if dbtype == refdb:
- if (schema_name+'.'+table_name) in RasterList:
- SVG = 'mIconRaster.svg'
- else:
- SVG = 'mIconWfs.svg'
- itemIcon = QTableWidgetItem()
- icon = QIcon()
- icon.addPixmap(QtGui.QPixmap(resources_path('icons',SVG)), QIcon.Mode(0), QIcon.State(1))
- itemIcon.setIcon(icon)
-
- else:
- type_val='agregation'
+ type_val='agregation'
schema_name=str(value[0])
table_name=str(value[1])
- item = QTableWidgetItem(type_val)
- if dbtype == refdb:
- self.tableWidget.setItem(i,0,itemIcon)
+ if (str(value[0])+'.'+str(value[1])) in RasterList:
+ SVG='mIconRaster.svg'
else:
- self.tableWidget.setCellWidget(i,0,None)
- self.tableWidget.setItem(i,0,item)
- item = QTableWidgetItem(schema_name)
+ SVG='mIconVecteur.svg'
+
+ itemIcon = QTableWidgetItem()
+ icon = QIcon()
+ icon.addPixmap(QtGui.QPixmap(resources_path('icons',SVG)), QIcon.Mode(0), QIcon.State(1))
+ itemIcon.setIcon(icon)
+
+ self.tableWidget.setItem(i,0,itemIcon)
+ item = QTableWidgetItem(type_val)
self.tableWidget.setItem(i,1,item)
- item = QTableWidgetItem(table_name)
+ item = QTableWidgetItem(schema_name)
self.tableWidget.setItem(i,2,item)
+ item = QTableWidgetItem(table_name)
+ self.tableWidget.setItem(i,3,item)
i=i+1
self.tableWidget.setColumnWidth(0, 20)
- self.tableWidget.setColumnWidth(1, 300)
+ self.tableWidget.setColumnWidth(1, 70)
self.tableWidget.setColumnWidth(2, 300)
- self.tableWidget.setHorizontalHeaderLabels(["Code","Schema","Table"])
+ self.tableWidget.setColumnWidth(3, 300)
+ self.tableWidget.setHorizontalHeaderLabels(["Type","Code","Schema","Table"])
def selection_flux(self):
selected_row = 0
selected_items = self.tableWidget.selectedItems()
# Assuming you want to compare items in the first column for uniqueness
- svgTake = (selected_items[2].tableWidget().cellWidget(0,0))
- new_item_text = selected_items[2].text()
+ #svgTake = (selected_items[2].tableWidget().cellWidget(0,0))
+ new_item_text = selected_items[3].text()
if not self.item_already_exists(new_item_text):
self.tableWidget_2.insertRow(selected_row)
for column in range(self.tableWidget.columnCount()):
cloned_item = selected_items[column].clone()
- self.tableWidget_2.setHorizontalHeaderLabels(["Code","Schema", "Table"])
- self.tableWidget_2.setColumnCount(3)
+ self.tableWidget_2.setHorizontalHeaderLabels(["Type","Code","Schema", "Table"])
+ self.tableWidget_2.setColumnCount(4)
self.tableWidget_2.setItem(selected_row, column, cloned_item)
- self.tableWidget_2.setColumnWidth(0, 50)
- self.tableWidget_2.setColumnWidth(1, 300)
+ self.tableWidget_2.setColumnWidth(0, 20)
+ self.tableWidget_2.setColumnWidth(1, 70)
self.tableWidget_2.setColumnWidth(2, 300)
+ self.tableWidget_2.setColumnWidth(3, 300)
def item_already_exists(self, new_item_text):
# Assuming you want to compare items in the first column for uniqueness
existing_items = self.tableWidget_2.findItems(new_item_text, QtCore.Qt.MatchFlag(0))
-
# Check if there are any existing items with the same text in the first column
return len(existing_items) > 0
@@ -613,26 +619,25 @@ var Travaux = L.geoJSON(TravauxJSON,{
for row in range(0, self.tableWidget_2.rowCount()):
color_rgba = 855030089
- if self.tableWidget_2.item(row, 0).background().color().rgba() != 855030089:
+ if self.tableWidget_2.item(row, 1).background().color().rgba() != 855030089:
## supression de la partie de l'url après le point d'interrogation
if dbtype == sigdb:
- code = self.tableWidget_2.item(row,0).text()
- schema = '_'+code+'_'+self.tableWidget_2.item(row,1).text()
- if code == 'travaux' or code == 'agregation':
- schema = self.tableWidget_2.item(row,1).text()
- table = self.tableWidget_2.item(row,2).text()
+ code = self.tableWidget_2.item(row,1).text()
+ schema = '_'+code+'_'+self.tableWidget_2.item(row,2).text()
+ if code == 'travaux' or code == 'agregation' :
+ schema = self.tableWidget_2.item(row,2).text()
+ table = self.tableWidget_2.item(row,3).text()
else:
- table = self.tableWidget_2.item(row,2).text()
+ table = self.tableWidget_2.item(row,3).text()
table = schema+'_'+table
- if dbtype == refdb:
-# code = self.tableWidget_2.item(row,0).text()
- schema = self.tableWidget_2.item(row,1).text()
- table = self.tableWidget_2.item(row,2).text()#.split("?", 1)[0]
+ elif dbtype == refdb:
+# code = self.tableWidget_2.item(row,1).text()
+ schema = self.tableWidget_2.item(row,2).text()
+ table = self.tableWidget_2.item(row,3).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
-
if (schema+'.'+table) in RasterList:
uri.setDataSource(schema, table, "rast")
uri.setKeyColumn('rid')
@@ -746,9 +751,16 @@ var Travaux = L.geoJSON(TravauxJSON,{
SchemaName = QTableWidgetItem(e[0][6:])
TableName = QTableWidgetItem(e[1][len(e[0])+1:])
self.tableWidget.insertRow(row_count)
- self.tableWidget.setItem(row_count,0,DepName)
- self.tableWidget.setItem(row_count,1,SchemaName)
- self.tableWidget.setItem(row_count,2,TableName)
+
+ itemIcon = QTableWidgetItem()
+ icon = QIcon()
+ icon.addPixmap(QtGui.QPixmap(resources_path('icons','mIconVecteur.svg')), QIcon.Mode(0), QIcon.State(1))
+ itemIcon.setIcon(icon)
+
+ self.tableWidget.setItem(row_count,0,itemIcon)
+ self.tableWidget.setItem(row_count,1,DepName)
+ self.tableWidget.setItem(row_count,2,SchemaName)
+ self.tableWidget.setItem(row_count,3,TableName)
if TableSomme == 0:
for j in range(self.tableWidget.columnCount()):
self.tableWidget.item(row_count, j).setBackground(QtGui.QColor(246, 185, 73,50))
diff --git a/CenRa_FLUX/metadata.txt b/CenRa_FLUX/metadata.txt
index 4d3fb3c..738f857 100644
--- a/CenRa_FLUX/metadata.txt
+++ b/CenRa_FLUX/metadata.txt
@@ -7,7 +7,7 @@ name=CenRa_FLUX
qgisMinimumVersion=3.0
supportsQt6=True
description=Permet d'ouvrire une table dans la base PostGis
-version=3.2
+version=3.3
author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr
@@ -19,7 +19,6 @@ email=si_besoin@cen-rhonealpes.fr
hasProcessingProvider=no
# Uncomment the following line and add your changelog:
-# changelog= correctif de sécurité: envoi du certificat d'authentification seulement pour les couches fonciercen et drone / intégration des styles RPG geoportail / modification des noms de couches pour plus de clarté
# Tags are comma separated with spaces allowed
tags=cenra, postgis, database
@@ -33,7 +32,7 @@ icon=icon.png
# experimental flag
experimental=False
-changelog=CenRa_FLUX:
22/07/2025 - Version 3.2:
- Visualisation des format raster et vecteur dans REF.
21/07/2025 - Version 3.1:
- Bug fix pour l'ouverture de plus de 5 couches.19/05/2025 - Version 3.0:
- Compatible PyQt5 et PyQt6.09/04/2025 - Version 2.9:
- Correctif bug en TT.09/04/2025 - Version 2.8:
- Optimisation pour le TT.07/04/2025 - Version 2.7:
- mode debug.03/04/2025 - Version 2.6:
- Mise a jour de securite.20/03/2025 - Version 2.5:
- Visualisation distincte des couches ne se trouvant pas dans l'antenne.13/02/2025 - Version 2.4:
- Ajoute redimensionnement et déplacement mollette.05/02/2025 - Version 2.3:
- Bouton de visualisation des couches se trouvent uniquement dans le canva de la carte.07/01/2025 - Version 2.2:
- ByPass du certif ssl ci erreur.22/10/2024 - Version 2.1:
- Correctif de bug. - Evolution de la limit de 3 à 5. 22/10/2024 - Version 2.0:
- Reformatage du code.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.
+changelog=CenRa_FLUX:
23/07/2025 - Version 3.3:
- Optimisation des chargement.22/07/2025 - Version 3.2:
- Visualisation des format raster et vecteur dans REF.21/07/2025 - Version 3.1:
- Bug fix pour l'ouverture de plus de 5 couches.19/05/2025 - Version 3.0:
- Compatible PyQt5 et PyQt6.09/04/2025 - Version 2.9:
- Correctif bug en TT.09/04/2025 - Version 2.8:
- Optimisation pour le TT.07/04/2025 - Version 2.7:
- mode debug.03/04/2025 - Version 2.6:
- Mise a jour de securite.20/03/2025 - Version 2.5:
- Visualisation distincte des couches ne se trouvant pas dans l'antenne.13/02/2025 - Version 2.4:
- Ajoute redimensionnement et déplacement mollette.05/02/2025 - Version 2.3:
- Bouton de visualisation des couches se trouvent uniquement dans le canva de la carte.07/01/2025 - Version 2.2:
- ByPass du certif ssl ci erreur.22/10/2024 - Version 2.1:
- Correctif de bug. - Evolution de la limit de 3 à 5. 22/10/2024 - Version 2.0:
- Reformatage du code.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
@@ -46,4 +45,3 @@ deprecated=False
# If the plugin can run on QGIS Server.
server=False
-
diff --git a/CenRa_FLUX/tools/icons/mIconWfs.svg b/CenRa_FLUX/tools/icons/mIconVecteur.svg
similarity index 100%
rename from CenRa_FLUX/tools/icons/mIconWfs.svg
rename to CenRa_FLUX/tools/icons/mIconVecteur.svg
diff --git a/plugins.xml b/plugins.xml
index 59b44e1..72bbd08 100644
--- a/plugins.xml
+++ b/plugins.xml
@@ -50,9 +50,9 @@
cenra,sicen
-
+
Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.
- 3.2
+ 3.3
3.16
https://plateformesig.cenra-outils.org/
CenRa_FLUX.zip
@@ -61,7 +61,7 @@
https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_FLUX.zip
CEN-Rhone-Alpes
2024-02-06
- 2025-07-22
+ 2025-07-23
False
False
cenra,flux