flake8 postgis

This commit is contained in:
Tom LAVEILLE 2025-07-29 13:35:11 +02:00
parent 133e785568
commit 7df08ae02a
7 changed files with 634 additions and 624 deletions

View File

@ -4,19 +4,21 @@ __email__ = "info@3liz.org"
from qgis.core import QgsApplication
from qgis.PyQt.QtCore import QCoreApplication, Qt, QTranslator, QUrl
from qgis.PyQt.QtCore import QUrl
from qgis.PyQt.QtGui import QDesktopServices, QIcon
from qgis.PyQt.QtWidgets import QAction, QMessageBox
from qgis.PyQt.QtWidgets import QAction
from qgis.utils import iface
import qgis
#include <QSettings>
# include <QSettings>
import socket
import os
from qgis.PyQt.QtCore import QSettings
from .about_form import AboutDialog
from .tools.resources import (
plugin_path,
# plugin_path,
pyperclip,
resources_path,
maj_verif,
@ -26,12 +28,10 @@ pyperclip()
from .postgis_editor import Postgis_Editor
from .postgis_creator import Postgis_Creator
from .postgis_rename import Postgis_Rename
from .about_form import AboutDialog
from qgis.PyQt.QtCore import *
IPAddr=socket.gethostbyname(socket.gethostname())
IPAddr = socket.gethostbyname(socket.gethostname())
class PgPostgis:
def __init__(self):
@ -45,18 +45,18 @@ class PgPostgis:
self.dock_action = None
self.help_action = None
plugin_dir = os.path.dirname(__file__)
end_find = plugin_dir.rfind('\\')+1
end_find = plugin_dir.rfind('\\') + 1
global NAME
NAME = plugin_dir[end_find:]
maj_verif(NAME)
# Display About window on first use
version = qgis.utils.pluginMetadata('CenRa_POSTGIS','version')
version = qgis.utils.pluginMetadata('CenRa_POSTGIS', 'version')
s = QSettings()
versionUse = s.value("postgis/version", 1, type=str)
if str(versionUse) != str(version) :
if str(versionUse) != str(version):
s.setValue("postgis/version", str(version))
print(versionUse,version)
print(versionUse, version)
self.open_about_dialog()
def initGui(self):
@ -76,29 +76,29 @@ class PgPostgis:
if not self.action_creator:
self.action_creator = Postgis_Creator()
self.postgis_creator = QAction(icon, 'dossier_creator',None)
self.postgis_creator = QAction(icon, 'dossier_creator', None)
self.toolBar.addAction(self.postgis_creator)
self.postgis_creator.triggered.connect(self.open_creator)
self.postgis_creator.setEnabled(False)
if os.access('N:/',os.R_OK):
if os.access('N:/', os.R_OK):
self.postgis_creator.setEnabled(True)
if not self.action_editor:
self.action_editor = Postgis_Editor()
self.postgis_editor = QAction(icon2, 'dossier_editor',None)
self.postgis_editor = QAction(icon2, 'dossier_editor', None)
self.toolBar.addAction(self.postgis_editor)
self.postgis_editor.triggered.connect(self.open_editor)
self.postgis_editor.setEnabled(False)
if os.access('N:/',os.R_OK):
if os.access('N:/', os.R_OK):
self.postgis_editor.setEnabled(True)
if not self.action_rename:
self.action_rename = Postgis_Rename()
self.postgis_rename = QAction(icon3, 'dossier_rename',None)
self.postgis_rename = QAction(icon3, 'dossier_rename', None)
self.toolBar.addAction(self.postgis_rename)
self.postgis_rename.triggered.connect(self.open_rename)
@ -112,7 +112,7 @@ class PgPostgis:
self.postgis_rename.setVisible(0)
self.postgis_rename.setEnabled(False)
if os.access('N:/',os.R_OK):
if os.access('N:/', os.R_OK):
self.postgis_rename.setEnabled(True)
def open_about_dialog(self):
@ -121,6 +121,7 @@ class PgPostgis:
"""
dialog = AboutDialog(iface)
dialog.exec()
def open_help():
""" Open the online help. """
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
@ -140,11 +141,11 @@ class PgPostgis:
def unload(self):
""" Unload the plugin. """
if self.action_editor:
iface.removePluginMenu('CenRa_Postgis',self.postgis_editor)
iface.removePluginMenu('CenRa_Postgis', self.postgis_editor)
if self.action_creator:
iface.removePluginMenu('CenRa_Postgis',self.postgis_creator)
iface.removePluginMenu('CenRa_Postgis', self.postgis_creator)
if self.action_rename:
iface.removePluginMenu('CenRa_Postgis',self.postgis_rename)
iface.removePluginMenu('CenRa_Postgis', self.postgis_rename)
if self.provider:
QgsApplication.processingRegistry().removeProvider(self.provider)

View File

@ -43,4 +43,4 @@ class AboutDialog(QDialog, ABOUT_FORM_CLASS):
Run some actions when
the user closes the dialog
"""
self.close()
self.close()

View File

@ -2,57 +2,57 @@
from __future__ import absolute_import
# Import the PyQt and QGIS libraries
from builtins import next
from builtins import str
from builtins import object
import qgis
# from builtins import next
# from builtins import str
# from builtins import object
# import qgis
from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog,QMessageBox
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtWidgets import QDialog, QMessageBox
# from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import *
from qgis.PyQt.QtGui import *
# from qgis.PyQt.QtCore import *
# from qgis.PyQt.QtGui import *
from qgis.PyQt import QtGui
from qgis.core import *
from qgis.core import QgsDataSourceUri
# from qgis.core import *
from qgis.core import QgsSettings
try:
from .tools.PythonSQL import login_base
except:
except ValueError:
print('Pas de fichier PythonSQL')
from .tools.SQLRequet import *
# from .tools.SQLRequet import *
from .tools.resources import (
load_ui,
resources_path,
send_issues,
# send_issues,
create_vierge,
create_contour,
create_travaux,
create_habita
)
from .issues import CenRa_Issues
# from .issues import CenRa_Issues
from qgis.utils import iface
import os.path
import webbrowser, os
import psycopg2
import psycopg2.extras
import base64
# import os.path
# import webbrowser, os
# import psycopg2
# import psycopg2.extras
# import base64
EDITOR_CLASS = load_ui('CenRa_Postgis_base.ui')
class Postgis_Creator(QDialog, EDITOR_CLASS):
class Postgis_Creator(QDialog, EDITOR_CLASS):
def __init__(self, parent=None):
_ = parent
super().__init__()
self.setupUi(self)
self.settings = QgsSettings()
self.s = QSettings()
self.setWindowIcon(QtGui.QIcon(resources_path('icons','icon.png')))
self.setWindowIcon(QtGui.QIcon(resources_path('icons', 'icon.png')))
self.iface = iface
# run method that performs all the real work
@ -64,23 +64,23 @@ class Postgis_Creator(QDialog, EDITOR_CLASS):
result = self.exec()
# See if OK was pressed
if result == 1:
#**********************************Debut_script****************************************
### Creation du schema pour le nouveau site
# **********************************Debut_script****************************************
# Creation du schema pour le nouveau site
if self.at.isChecked():
schema = "_" + self.dept.currentText() + "_at_" + self.nom.text().lower() # Ajout de "_" pour eviter pb de numero en premier caractere
else :
schema = "_" + self.dept.currentText() + "_" + self.nom.text().lower() # Ajout de "_" pour eviter pb de numero en premier caractere
# Ajout de "_" pour eviter pb de numero en premier caractere
schema = "_" + self.dept.currentText() + "_at_" + self.nom.text().lower()
else:
# Ajout de "_" pour eviter pb de numero en premier caractere
schema = "_" + self.dept.currentText() + "_" + self.nom.text().lower()
if self.nom.text() == "" or self.nom.text() == "NULL":
QMessageBox.warning(None, "Oups :", "Veuillez renseigner un nom de dossier.")
return
ch = [u"à", u"À", u"â", u"Â", u"ä", u"Ä", u"å", u"Å", u"ç", u"Ç", u"é", u"É", u"è", u"È", u"ê", u"Ê", u"ë", u"Ë", u"î", u"Î", u"ï", u"Ï", u"ô", u"Ô", u"ö", u"Ö", u"ù", u"Ù", u"û", u"Û", u"ü", u"Ü", u"ÿ", u"Ÿ", u"'", u"-", u" "]
for car in ch :
if self.nom.text().find(car) != -1 :
QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.nom.text().lower() )
for car in ch:
if self.nom.text().find(car) != - 1:
QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.nom.text().lower())
return
account = login_base("account")
user = account[0]
@ -92,19 +92,18 @@ class Postgis_Creator(QDialog, EDITOR_CLASS):
con = account[8]
SQL_schema = "CREATE SCHEMA " + schema + ";"
SQL_GRANT_SCHEMA="GRANT CREATE, USAGE ON SCHEMA "+schema+" TO grp_qgis; GRANT CREATE, USAGE ON SCHEMA "+schema+" TO grp_sig;"
SQL_GRANT_SCHEMA = "GRANT CREATE, USAGE ON SCHEMA " + schema + " TO grp_qgis; GRANT CREATE, USAGE ON SCHEMA " + schema + " TO grp_sig;"
if self.couche_contour.isChecked() or self.couche_habitat.isChecked() or self.couche_travaux_prevus.isChecked() or self.couche_vierge.isChecked():
cur.execute(SQL_schema)
cur.execute(SQL_GRANT_SCHEMA)
else:
iface.messageBar().pushMessage("POSTGRESQL :", "Pas de couche sélectionnée, création refusée.", level=Qgis.Warning, duration=30)
create_contour(self,schema,cur,con,host ,port ,dbname ,user ,mdp)
create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp)
create_travaux(self,schema,cur,con,host ,port ,dbname ,user ,mdp)
create_vierge(self,schema,cur,con,host ,port ,dbname ,user ,mdp)
iface.messageBar().pushMessage("POSTGRESQL :", "Pas de couche sélectionnée, création refusée.", level=1, duration=30)
create_contour(self, schema, cur, con, host, port, dbname, user, mdp)
create_habita(self, schema, cur, con, host, port, dbname, user, mdp)
create_travaux(self, schema, cur, con, host, port, dbname, user, mdp)
create_vierge(self, schema, cur, con, host, port, dbname, user, mdp)
con.close()
pass
pass

View File

@ -4,57 +4,55 @@ from __future__ import absolute_import
# Import the PyQt and QGIS libraries
from builtins import next
from builtins import str
from builtins import object
import qgis
# from builtins import object
# import qgis
from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtWidgets import QDialog, QMessageBox
# from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import *
from qgis.PyQt.QtGui import *
from qgis.PyQt import QtGui
from qgis.core import *
from qgis.core import QgsDataSourceUri
# from qgis.core import *
from qgis.core import QgsSettings
try:
from .tools.PythonSQL import login_base
except:
except ValueError:
print('Pas de fichier PythonSQL')
from .tools.SQLRequet import *
# from .tools.SQLRequet import *
from .tools.resources import (
load_ui,
resources_path,
send_issues,
# send_issues,
create_vierge,
create_contour,
create_travaux,
create_habita
)
from .issues import CenRa_Issues
# from .issues import CenRa_Issues
import os.path
import webbrowser, os
import psycopg2
import psycopg2.extras
import base64
# import os.path
# import webbrowser
# import psycopg2
# import psycopg2.extras
# import base64
from qgis.utils import iface
EDITOR_CLASS = load_ui('CenRa_PostgisTable_base.ui')
class Postgis_Editor(QDialog, EDITOR_CLASS):
class Postgis_Editor(QDialog, EDITOR_CLASS):
def __init__(self, parent=None):
_ = parent
super().__init__()
self.setupUi(self)
self.settings = QgsSettings()
self.s = QSettings()
self.setWindowIcon(QtGui.QIcon(resources_path('icons','icon.png')))
self.setWindowIcon(QtGui.QIcon(resources_path('icons', 'icon.png')))
self.iface = iface
### Outil Ajout de nouvelles couche a un dossier
# Outil Ajout de nouvelles couche a un dossier
def raise_(self):
self.activateWindow()
account = login_base("account")
@ -65,13 +63,12 @@ class Postgis_Editor(QDialog, EDITOR_CLASS):
dbname = account[4]
cur = account[7]
con = account[8]
# Creation de la liste des schemas de la base de donnees
# Creation de la liste des schemas de la base de donnees
SQL = """WITH list_schema AS (
select schemaname,'sig' as group from pg_catalog.pg_tables
where schemaname ~ E'^_(0|1|2|3|4|6|7|f)'
group by schemaname
order by schemaname)
select string_agg(schemaname,',')
from list_schema
group by "group";"""
@ -79,14 +76,15 @@ class Postgis_Editor(QDialog, EDITOR_CLASS):
cur.execute(SQL)
list_brut = str(next(cur))
list = list_brut [2:-2]
list = list_brut[2:-2]
listItems = list.split(",")
con.close()
self.schema.clear()
self.schema.addItems(listItems)
self.schema.setCurrentIndex(-1) # Pour ne pas commencer la liste au premier schema
# Pour ne pas commencer la liste au premier schema
self.schema.setCurrentIndex(-1)
# show the dialog
self.show()
@ -94,7 +92,7 @@ class Postgis_Editor(QDialog, EDITOR_CLASS):
result = self.exec()
# See if OK was pressed
if result == 1:
#******************************debut script*********************************
# ******************************debut script*********************************
account = login_base("account")
user = account[0]
mdp = account[1]
@ -104,16 +102,16 @@ class Postgis_Editor(QDialog, EDITOR_CLASS):
cur = account[7]
con = account[8]
if self.schema.currentIndex() == -1 :
if self.schema.currentIndex() == - 1:
QMessageBox.warning(None, "Oups :", "Veuillez choisir un nom de dossier.")
return
schema = self.schema.currentText()
create_contour(self,schema,cur,con,host ,port ,dbname ,user ,mdp)
create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp)
create_travaux(self,schema,cur,con,host ,port ,dbname ,user ,mdp)
create_vierge(self,schema,cur,con,host ,port ,dbname ,user ,mdp)
create_contour(self, schema, cur, con, host, port, dbname, user, mdp)
create_habita(self, schema, cur, con, host, port, dbname, user, mdp)
create_travaux(self, schema, cur, con, host, port, dbname, user, mdp)
create_vierge(self, schema, cur, con, host, port, dbname, user, mdp)
con.close()
pass
pass

View File

@ -2,43 +2,39 @@
from __future__ import absolute_import
# Import the PyQt and QGIS libraries
from builtins import next
# from builtins import next
from builtins import str
from builtins import object
import qgis
# from builtins import object
# import qgis
from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog, QMessageBox,QDialogButtonBox
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtWidgets import QDialog, QMessageBox, QDialogButtonBox
# from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import *
from qgis.PyQt.QtGui import *
# from qgis.PyQt.QtCore import *
# from qgis.PyQt.QtGui import *
from qgis.PyQt import QtGui
from qgis.core import *
from qgis.core import QgsDataSourceUri
# from qgis.core import *
from qgis.core import QgsSettings, QgsDataSourceUri, QgsProject
try:
from .tools.PythonSQL import login_base
except:
except ValueError:
print('Pas de fichier PythonSQL')
from .tools.SQLRequet import *
# from .tools.SQLRequet import *
from .tools.resources import (
load_ui,
resources_path,
send_issues,
create_vierge,
create_contour,
create_travaux,
create_habita
# send_issues,
)
from .issues import CenRa_Issues
# from .issues import CenRa_Issues
import os.path
import webbrowser, os
import psycopg2
import psycopg2.extras
import base64
# import os.path
# import webbrowser
# import psycopg2
# import psycopg2.extras
# import base64
from qgis.utils import iface
EDITOR_CLASS = load_ui('CenRa_PostgisRename_base.ui')
@ -52,22 +48,24 @@ try:
dbname = account[4]
cur = account[7]
con = account[8]
except:
except ValueError:
print('')
class Postgis_Rename(QDialog, EDITOR_CLASS):
class Postgis_Rename(QDialog, EDITOR_CLASS):
def __init__(self, parent=None):
_ = parent
super().__init__()
self.setupUi(self)
self.settings = QgsSettings()
self.s = QSettings()
self.setWindowIcon(QtGui.QIcon(resources_path('icons','icon.png')))
self.setWindowIcon(QtGui.QIcon(resources_path('icons', 'icon.png')))
self.iface = iface
self.schema.currentIndexChanged.connect(self.Test)
self.buttonBox.accepted.connect(self.msgBox)
### Outil Ajout de nouvelles couche a un dossier
# Outil Ajout de nouvelles couche a un dossier
def raise_(self):
self.activateWindow()
self.groupBox_3.hide()
@ -82,7 +80,7 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
self.schema.addItems([''])
for Schema in AllSchema:
self.schema.addItems(Schema)
self.departement.addItems(['','01','07','26','42','69','form'])
self.departement.addItems(['', '01', '07', '26', '42', '69', 'form'])
if last_value_schema != '':
self.schema.setCurrentIndex(self.schema.findText(last_value_schema))
if last_value_departement != '':
@ -92,27 +90,27 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
oldSchema = self.schema.currentText()
if oldSchema != '':
allIsGood = 0
GET_COUNT_LEFT = "SELECT count(*) FROM information_schema.tables WHERE table_schema LIKE left(table_name,"+str(len(oldSchema))+") AND table_schema LIKE '"+oldSchema+"';"
GET_COUNT_TOT = "SELECT count(*) FROM information_schema.tables WHERE table_schema LIKE '"+oldSchema+"';"
GET_COUNT_LEFT = "SELECT count(*) FROM information_schema.tables WHERE table_schema LIKE left(table_name," + str(len(oldSchema)) + ") AND table_schema LIKE '" + oldSchema + "';"
GET_COUNT_TOT = "SELECT count(*) FROM information_schema.tables WHERE table_schema LIKE '" + oldSchema + "';"
cur.execute(GET_COUNT_TOT)
CountTot = cur.fetchall()[0]
cur.execute(GET_COUNT_LEFT)
CountLeft = cur.fetchall()[0]
if CountLeft[0] == CountTot[0]:
allIsGood = allIsGood+1
allIsGood = allIsGood + 1
self.couche.setChecked(1)
else:
self.couche.setChecked(0)
GET_GRANTEE_PRIVILEGE = "SELECT DISTINCT count(*) FROM information_schema.role_table_grants WHERE table_schema LIKE '"+oldSchema+"' AND grantee LIKE 'grp_qgis' AND privilege_type LIKE 'UPDATE';"
GET_GRANTEE_PRIVILEGE = "SELECT DISTINCT count(*) FROM information_schema.role_table_grants WHERE table_schema LIKE '" + oldSchema + "' AND grantee LIKE 'grp_qgis' AND privilege_type LIKE 'UPDATE';"
cur.execute(GET_GRANTEE_PRIVILEGE)
CountPrivilege = cur.fetchall()[0]
if CountTot[0] == CountPrivilege[0]:
allIsGood = allIsGood+1
allIsGood = allIsGood + 1
self.compte.setChecked(1)
else:
self.compte.setChecked(0)
@ -149,52 +147,50 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
def updateName(self):
if self.departement.currentText() != '':
oldTableName = self.old_name.text()
newTableName = ((self.new_name.text()).lower()).replace(' ','_')
newPrefixSchema = '_'+self.departement.currentText()+'_'
newTableName = ((self.new_name.text()).lower()).replace(' ', '_')
newPrefixSchema = '_' + self.departement.currentText() + '_'
if self.schema.currentText()[:6] == '_form_':
oldPrefixSchema = self.schema.currentText()[:6]
if (self.schema.currentText()[6:9]) == "at_":
oldPrefixSchema=oldPrefixSchema+'at_'
oldPrefixSchema = oldPrefixSchema + 'at_'
else:
oldPrefixSchema = self.schema.currentText()[:4]
if (self.schema.currentText()[4:7]) == 'at_':
oldPrefixSchema=oldPrefixSchema+'at_'
oldPrefixSchema = oldPrefixSchema + 'at_'
if self.animation.isChecked():
newPrefixSchema=newPrefixSchema+'at_'
oldSchemaName = oldPrefixSchema+oldTableName
newSchemaName = newPrefixSchema+newTableName
newPrefixSchema = newPrefixSchema + 'at_'
oldSchemaName = oldPrefixSchema + oldTableName
newSchemaName = newPrefixSchema + newTableName
if oldSchemaName != newSchemaName:
global AllSQLrun
allSQLrun=''
allSQLrun = ''
SQL_UPDATE = """UPDATE public.layer_styles SET f_table_schema = '"""+newSchemaName+"""',f_table_name = replace(replace(f_table_name,'"""+oldTableName+"""','"""+newTableName+"""'),'"""+oldPrefixSchema+"""','"""+newPrefixSchema+"""') WHERE f_table_schema LIKE '"""+oldSchemaName+"""';"""
allSQLrun = allSQLrun+SQL_UPDATE
SQL_UPDATE = """UPDATE public.layer_styles SET f_table_schema = '""" + newSchemaName + """',f_table_name = replace(replace(f_table_name,'""" + oldTableName + """','""" + newTableName + """'),'""" + oldPrefixSchema + """','""" + newPrefixSchema + """') WHERE f_table_schema LIKE '""" + oldSchemaName + """';"""
allSQLrun = allSQLrun + SQL_UPDATE
cur.execute(SQL_UPDATE)
SQL_GET_TABLE_RENAME = """SELECT table_name,replace(replace(table_name,'"""+oldTableName+"""','"""+newTableName+"""'),'"""+oldPrefixSchema+"""','"""+newPrefixSchema+"""') from information_schema.tables WHERE table_schema LIKE '"""+oldSchemaName+"""';"""
SQL_GET_TABLE_RENAME = """SELECT table_name,replace(replace(table_name,'""" + oldTableName + """','""" + newTableName + """'),'""" + oldPrefixSchema + """','""" + newPrefixSchema + """') from information_schema.tables WHERE table_schema LIKE '""" + oldSchemaName + """';"""
cur.execute(SQL_GET_TABLE_RENAME)
allTableRename = cur.fetchall()
allTableList = []
for TableRename in allTableRename:
oldTable = TableRename[0]
newTable = TableRename[1]
allTableList.append([oldTable,newSchemaName,newTable])
SQL_RENAME_TABLE = """ALTER TABLE """+oldSchemaName+'.'+oldTable+""" RENAME TO """+newTable+""";"""
allSQLrun = allSQLrun+SQL_RENAME_TABLE
allTableList.append([oldTable, newSchemaName, newTable])
SQL_RENAME_TABLE = """ALTER TABLE """ + oldSchemaName + '.' + oldTable + """ RENAME TO """ + newTable + """;"""
allSQLrun = allSQLrun + SQL_RENAME_TABLE
cur.execute(SQL_RENAME_TABLE)
SQL_RENAME_SCHEMA = 'ALTER SCHEMA '+oldSchemaName+' RENAME TO '+newSchemaName
allSQLrun = allSQLrun+SQL_RENAME_SCHEMA
SQL_RENAME_SCHEMA = 'ALTER SCHEMA ' + oldSchemaName + ' RENAME TO ' + newSchemaName
allSQLrun = allSQLrun + SQL_RENAME_SCHEMA
cur.execute(SQL_RENAME_SCHEMA)
#print(allSQLrun)
con.commit()
for LayerOpen in allTableList:
self.UnloadLoadLayers(LayerOpen[0],LayerOpen[1],LayerOpen[2])
self.UnloadLoadLayers(LayerOpen[0], LayerOpen[1], LayerOpen[2])
def UnloadLoadLayers(self,OldName,NewSchema,NewTable):
def UnloadLoadLayers(self, OldName, NewSchema, NewTable):
allLayers = (QgsProject.instance().mapLayers().values())
listLayers = []
listLayersName = []
@ -210,10 +206,10 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
host = QgsDataSourceUri(provider.dataSourceUri()).host()
port = QgsDataSourceUri(provider.dataSourceUri()).port()
### Affichage de la table
# Affichage de la table
uri = QgsDataSourceUri()
# set host name, port, database name, username and password
uri.setConnection(host ,port ,dbname ,user ,mdp)
uri.setConnection(host, port, dbname, user, mdp)
# set database schema, table name, geometry column and optionaly subset (WHERE clause)
uri.setDataSource(NewSchema, NewTable, 'geom')
QgsProject.instance().removeMapLayer(layer.id())
@ -224,16 +220,16 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
self.QMBquestion.setWindowTitle(u"Attention !")
self.QMBquestion.setIcon(QMessageBox.Icon.Warning)
self.QMBquestion.setText("Attention, le renommage de dossier PostGIS peut engendrer des pertes de liaisons avec des projets QGIS !")
self.QMBquestion.setStandardButtons(QMessageBox.StandardButton(0x00004000)|QMessageBox.StandardButton(0x00010000))
self.QMBquestion.setStandardButtons(QMessageBox.StandardButton(0x00004000) | QMessageBox.StandardButton(0x00010000))
if self.new_name.text() != '':
error_caracteres = 0
for caracteres in ch :
if self.new_name.text().find(caracteres) != -1 :
for caracteres in ch:
if self.new_name.text().find(caracteres) != - 1:
error_caracteres = 1
if error_caracteres == 0:
self.QMBquestion = self.QMBquestion.exec()
else:
QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.new_name.text().lower() )
QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.new_name.text().lower())
else:
QMessageBox.warning(None, "Oups :", "Votre projet doit avoire un nom !")
if self.QMBquestion == QMessageBox.StandardButton(0x00004000):

View File

@ -1,7 +1,7 @@
geom = "geom"
champ_travaux_prevus_multipolygon="""(gid serial NOT NULL, groupe_gestion text, gestion_lib text, id_gestion text, datedebut date, datefin date, commentaire text, surface_m2 double precision, surface_ha double precision, date_creation date, date_maj date, geom geometry(MultiPolygon,2154))"""
champ_travaux_prevus_multilinestring="""(gid serial NOT NULL, groupe_gestion text, gestion_lib text, id_gestion text, datedebut date, datefin date, commentaire text, longueur_m double precision, longueur_km double precision, date_creation date, date_maj date, geom geometry(MultiLineString,2154))"""
champ_travaux_prevus_multipolygon = """(gid serial NOT NULL, groupe_gestion text, gestion_lib text, id_gestion text, datedebut date, datefin date, commentaire text, surface_m2 double precision, surface_ha double precision, date_creation date, date_maj date, geom geometry(MultiPolygon,2154))"""
champ_travaux_prevus_multilinestring = """(gid serial NOT NULL, groupe_gestion text, gestion_lib text, id_gestion text, datedebut date, datefin date, commentaire text, longueur_m double precision, longueur_km double precision, date_creation date, date_maj date, geom geometry(MultiLineString,2154))"""
champ_travaux_prevus_point = """(gid serial NOT NULL, groupe_gestion text, gestion_lib text, id_gestion text, datedebut date, datefin date, commentaire text, x_wgs84 double precision, y_wgs84 double precision, date_creation date, date_maj date, geom geometry(Point,2154))"""
champ_viergePolygone = """(gid serial NOT NULL, commentaire text, surface_m2 double precision, surface_ha double precision, geom geometry(MultiPolygon,2154))"""
@ -10,7 +10,7 @@ champ_viergePoint = """(gid serial NOT NULL, commentaire text, x_wgs84 double pr
champ_habitat = """(gid serial NOT NULL, cd_cb_01 text, lb_cb97_fr_01 text, occupation_01 integer, cd_cb_02 text, lb_cb97_fr_02 text, occupation_02 integer, cd_cb_03 text, lb_cb97_fr_03 text, occupation_03 integer, milieu_code text, milieu_libelle text, surface_m2 double precision, surface_ha double precision, commentaire text, date_creation date, date_maj date, geom geometry(MultiPolygon,2154))"""
champ_contour="""(gid serial NOT NULL, date_creation date, date_maj date, utilisateur character varying, dept character(2), nom character varying, surface_m2 double precision, surface_ha double precision, type_site character varying, type_milieu character varying, date_premier_pg integer, date_debut_pg integer, date_fin_pg integer, referent character varying, gestion_deleguee character varying, terrain_militaire character(3), ens character(3), zh character(3), adapt_pmr character(3), inform character(3), guide character(3), ouverture_public character(3), obs character(3), anim character(3), n2000_anim character(3), contrat_n2000_conseil character(3), n2000_op character(3), contrat_n2000_benef character(3), contrat_agri character(3), bc_habitat integer, bc_amphibien integer, bc_coleoptere integer, bc_crustace integer, bc_mammifere integer, bc_chiroptere integer, bc_mollusque integer, bc_odonate integer, bc_oiseau integer, bc_orthoptere integer, bc_poisson integer, bc_reptile integer, bc_rhopalocere integer, bc_heterocere integer, bc_autre_invertebre integer, bc_flore integer, bc_bryophyte integer, bc_champignon integer, suiv_analyse_sol character(3), suiv_piezo character(3), suiv_climat character(3), suiv_topo character(3), suiv_habitat character(3), suiv_amphibien character(3), suiv_coleoptere character(3), suiv_crustace character(3), suiv_mammifere character(3), suiv_chiroptere character(3), suiv_mollusque character(3), suiv_odonate character(3), suiv_oiseau character(3), suiv_orthoptere character(3), suiv_poisson character(3), suiv_reptile character(3), suiv_rhopalocere character(3), suiv_heterocere character(3), suiv_autre_invertebre character(3), suiv_flore character(3), suiv_bryophyte character(3), suiv_champignon character(3), suiv_analyse_eau character(3), suiv_phenologie character(3), suiv_frequentation character(3), suiv_paysager character(3), suiv_autre character(3), commentaire text, geom geometry(MultiPolygon,2154))
champ_contour = """(gid serial NOT NULL, date_creation date, date_maj date, utilisateur character varying, dept character(2), nom character varying, surface_m2 double precision, surface_ha double precision, type_site character varying, type_milieu character varying, date_premier_pg integer, date_debut_pg integer, date_fin_pg integer, referent character varying, gestion_deleguee character varying, terrain_militaire character(3), ens character(3), zh character(3), adapt_pmr character(3), inform character(3), guide character(3), ouverture_public character(3), obs character(3), anim character(3), n2000_anim character(3), contrat_n2000_conseil character(3), n2000_op character(3), contrat_n2000_benef character(3), contrat_agri character(3), bc_habitat integer, bc_amphibien integer, bc_coleoptere integer, bc_crustace integer, bc_mammifere integer, bc_chiroptere integer, bc_mollusque integer, bc_odonate integer, bc_oiseau integer, bc_orthoptere integer, bc_poisson integer, bc_reptile integer, bc_rhopalocere integer, bc_heterocere integer, bc_autre_invertebre integer, bc_flore integer, bc_bryophyte integer, bc_champignon integer, suiv_analyse_sol character(3), suiv_piezo character(3), suiv_climat character(3), suiv_topo character(3), suiv_habitat character(3), suiv_amphibien character(3), suiv_coleoptere character(3), suiv_crustace character(3), suiv_mammifere character(3), suiv_chiroptere character(3), suiv_mollusque character(3), suiv_odonate character(3), suiv_oiseau character(3), suiv_orthoptere character(3), suiv_poisson character(3), suiv_reptile character(3), suiv_rhopalocere character(3), suiv_heterocere character(3), suiv_autre_invertebre character(3), suiv_flore character(3), suiv_bryophyte character(3), suiv_champignon character(3), suiv_analyse_eau character(3), suiv_phenologie character(3), suiv_frequentation character(3), suiv_paysager character(3), suiv_autre character(3), commentaire text, geom geometry(MultiPolygon,2154))
"""
champ_vegethab_point = """(
@ -138,4 +138,4 @@ champ_vegethab_multipolygon = """(
class_name character varying(254) COLLATE pg_catalog."default",
geom geometry(MultiPolygon,2154)
)
"""
"""

File diff suppressed because it is too large Load Diff