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