Vue du type vecteur ou raster dans SIG

This commit is contained in:
2025-07-23 16:00:36 +02:00
parent 3719456f04
commit 2690220a02
4 changed files with 64 additions and 54 deletions
+59 -47
View File
@@ -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 = '''<!DOCTYPE html>
<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))