flake8 postgis
This commit is contained in:
parent
133e785568
commit
7df08ae02a
@ -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)
|
||||
|
||||
@ -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
|
||||
@ -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")
|
||||
@ -71,7 +69,6 @@ class Postgis_Editor(QDialog, EDITOR_CLASS):
|
||||
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
|
||||
@ -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 != '':
|
||||
@ -93,8 +91,8 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
|
||||
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]
|
||||
@ -102,17 +100,17 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
|
||||
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):
|
||||
|
||||
@ -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 = """(
|
||||
|
||||
@ -3,13 +3,13 @@
|
||||
import configparser
|
||||
import shutil
|
||||
import tempfile
|
||||
import base64
|
||||
import psycopg2
|
||||
import psycopg2.extras
|
||||
# import base64
|
||||
# import psycopg2
|
||||
# import psycopg2.extras
|
||||
import os
|
||||
from os.path import abspath, join, pardir, dirname
|
||||
from qgis.core import QgsDataSourceUri
|
||||
from .SQLRequet import *
|
||||
from .SQLRequet import geom, champ_contour, champ_travaux_prevus_multilinestring, champ_travaux_prevus_point, champ_travaux_prevus_multipolygon, champ_vegethab_multipolygon, champ_vegethab_multilinestring, champ_vegethab_point, champ_viergeLigne, champ_viergePoint, champ_viergePolygone
|
||||
from qgis.PyQt import uic
|
||||
|
||||
__copyright__ = "Copyright 2019, 3Liz"
|
||||
@ -109,86 +109,94 @@ def load_ui(*args):
|
||||
|
||||
return ui_class
|
||||
|
||||
|
||||
def pyperclip():
|
||||
dst = dirname(dirname(__file__))+"\\tools\\"
|
||||
if os.access('N:/',os.R_OK):
|
||||
dst = dirname(dirname(__file__)) + "\\tools\\"
|
||||
if os.access('N:/', os.R_OK):
|
||||
src = 'N:/SI_Systeme d information/Z_QGIS/PLUGIN/PythonSQL.py'
|
||||
try:
|
||||
shutil.copy(src, dst)
|
||||
except:
|
||||
except FileNotFoundError:
|
||||
print('404')
|
||||
except UnboundLocalError:
|
||||
print('404')
|
||||
|
||||
def send_issues(url,titre,body,labels):
|
||||
|
||||
def send_issues(url, titre, body, labels):
|
||||
import requests
|
||||
import urllib.request
|
||||
import json
|
||||
import os
|
||||
import qgis
|
||||
# import os
|
||||
# import qgis
|
||||
|
||||
usr = os.environ['USERNAME']
|
||||
# usr = os.environ['USERNAME']
|
||||
token = '9d0a4e0bea561710e0728f161f7edf4e5201e112'
|
||||
url=url+'?token='+token
|
||||
|
||||
headers = {'Authorization': 'token ' + token,'accept': 'application/json','Content-Type': 'application/json'}
|
||||
url = url + '?token=' + token
|
||||
|
||||
headers = {'Authorization': 'token ' + token, 'accept': 'application/json', 'Content-Type': 'application/json'}
|
||||
|
||||
payload = {'title': titre, 'body': body, 'labels': labels}
|
||||
try:
|
||||
urllib.request.urlopen('https://google.com')
|
||||
binar = True
|
||||
except:
|
||||
except ValueError:
|
||||
binar = False
|
||||
r = ''
|
||||
if binar:
|
||||
r = requests.post(url, data=json.dumps(payload), headers=headers)
|
||||
return r
|
||||
|
||||
|
||||
def maj_verif(NAME):
|
||||
import qgis
|
||||
import urllib.request
|
||||
iface = qgis.utils.iface
|
||||
from qgis.core import Qgis
|
||||
|
||||
url = qgis.utils.pluginMetadata(NAME,'repository')
|
||||
#URL = url+'/raw/branch/main/plugins.xml'
|
||||
# url = qgis.utils.pluginMetadata(NAME, 'repository')
|
||||
# URL = url+'/raw/branch/main/plugins.xml'
|
||||
URL = 'https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/plugins.xml'
|
||||
# print(URL)
|
||||
version = qgis.utils.pluginMetadata(NAME,'version')
|
||||
version = qgis.utils.pluginMetadata(NAME, 'version')
|
||||
len_version = len(version)
|
||||
try:
|
||||
urllib.request.urlopen('https://google.com')
|
||||
binar = True
|
||||
except:
|
||||
except urllib.error.URLError:
|
||||
binar = False
|
||||
if binar:
|
||||
try:
|
||||
version_web = str(urllib.request.urlopen(URL).read())
|
||||
plugin_num = version_web.find(NAME)
|
||||
valeur_version_web = version_web.find('<version>',plugin_num)+9
|
||||
version_plugin = version_web[valeur_version_web:valeur_version_web+len_version]
|
||||
valeur_version_web = version_web.find('<version>', plugin_num) + 9
|
||||
version_plugin = version_web[valeur_version_web:valeur_version_web + len_version]
|
||||
if version_plugin != version:
|
||||
iface.messageBar().pushMessage("MAJ :", "Des mise à jour de plugin sont disponibles.", level=Qgis.Info, duration=30)
|
||||
except:
|
||||
except urllib.error.URLError:
|
||||
print("error gitea version ssl")
|
||||
else:
|
||||
iface.messageBar().pushMessage("WiFi :", "Pas de connection à internet.", level=Qgis.Warning, duration=30)
|
||||
|
||||
|
||||
def devlog(NAME):
|
||||
import qgis
|
||||
devmaj = '<head><style>* {margin:0; padding:0; }</style></head>'
|
||||
devmaj = devmaj+qgis.utils.pluginMetadata(NAME,'changelog')
|
||||
devmaj = devmaj + qgis.utils.pluginMetadata(NAME, 'changelog')
|
||||
return devmaj
|
||||
|
||||
def create_contour(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
### Creation de la table contour
|
||||
if self.couche_contour.isChecked(): # Verifie si la checkbox est cochee
|
||||
|
||||
def create_contour(self, schema, cur, con, host, port, dbname, user, mdp):
|
||||
# Creation de la table contour
|
||||
# Verifie si la checkbox est cochee
|
||||
if self.couche_contour.isChecked():
|
||||
if self.annee_1.text() == 'aaaa' or self.annee_1.text() == '':
|
||||
tablename = schema + "_contour"
|
||||
else :
|
||||
else:
|
||||
tablename = schema + "_contour_" + self.annee_1.text()
|
||||
tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis
|
||||
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename+"','gid')"
|
||||
SQL_contour = "CREATE TABLE " + schema + "."+ tablename + champ_contour
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename + "','gid')"
|
||||
SQL_contour = "CREATE TABLE " + schema + "." + tablename + champ_contour
|
||||
|
||||
cur.execute(SQL_contour)
|
||||
cur.execute(RETURNE)
|
||||
@ -204,44 +212,46 @@ def create_contour(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now()
|
||||
FROM layer_styles
|
||||
WHERE description = 'contour_modele_v3'"""
|
||||
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
|
||||
SQL_GRANT_TABLE = "GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_sig;GRANT ALL ON SEQUENCE " + sequence_name + " TO grp_qgis;"
|
||||
|
||||
cur.execute(SQL_pkey)
|
||||
cur.execute(SQL_trigger_area_m2)
|
||||
cur.execute(SQL_trigger_area_ha)
|
||||
cur.execute(SQL_trigger_date_creation)
|
||||
cur.execute(SQL_trigger_date_maj)
|
||||
cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles
|
||||
# Enregistrement du style (comme style par defaut) dans la table layer_styles
|
||||
cur.execute(SQL_style)
|
||||
cur.execute(SQL_GRANT_TABLE)
|
||||
|
||||
con.commit()
|
||||
|
||||
## 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(schema, tablename, geom)
|
||||
|
||||
layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
def create_travaux(self,schema,cur,con,host,port,dbname,user,mdp):
|
||||
### Creation de la table travaux prevus
|
||||
self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
|
||||
|
||||
def create_travaux(self, schema, cur, con, host, port, dbname, user, mdp):
|
||||
# Creation de la table travaux prevus
|
||||
if self.couche_travaux_prevus.isChecked():
|
||||
#**********Poly
|
||||
# **********Poly
|
||||
if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
|
||||
tablename = schema + "_travaux_prevus_poly"
|
||||
else :
|
||||
else:
|
||||
tablename = schema + "_travaux_prevus_poly_" + self.annee_5.text()
|
||||
tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis
|
||||
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename+"','gid')"
|
||||
SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multipolygon
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename + "','gid')"
|
||||
SQL_travaux_prevus = "CREATE TABLE " + schema + "." + tablename + champ_travaux_prevus_multipolygon
|
||||
|
||||
cur.execute(SQL_travaux_prevus)
|
||||
cur.execute(RETURNE)
|
||||
sequence_name = cur.fetchone()[0]
|
||||
|
||||
|
||||
SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename[len(schema):] + "_pkey" + " PRIMARY KEY (gid)"
|
||||
SQL_trigger_date_creation = "CREATE TRIGGER date_creation" + tablename + " BEFORE INSERT ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_creation();"
|
||||
SQL_trigger_date_maj = "CREATE TRIGGER date_maj" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.date_maj();"
|
||||
@ -252,36 +262,37 @@ def create_travaux(self,schema,cur,con,host,port,dbname,user,mdp):
|
||||
SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now()
|
||||
FROM layer_styles
|
||||
WHERE description = 'travaux_prevus_poly_modele_v3'"""
|
||||
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
|
||||
SQL_GRANT_TABLE = "GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_sig;GRANT ALL ON SEQUENCE " + sequence_name + " TO grp_qgis;"
|
||||
|
||||
cur.execute(SQL_pkey)
|
||||
cur.execute(SQL_trigger_date_creation)
|
||||
cur.execute(SQL_trigger_date_maj)
|
||||
cur.execute(SQL_trigger_area_m2)
|
||||
cur.execute(SQL_trigger_area_ha)
|
||||
cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles
|
||||
# Enregistrement du style (comme style par defaut) dans la table layer_styles
|
||||
cur.execute(SQL_style)
|
||||
cur.execute(SQL_GRANT_TABLE)
|
||||
|
||||
con.commit()
|
||||
|
||||
## 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(schema, tablename, geom)
|
||||
|
||||
layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
|
||||
#**********ligne
|
||||
# **********ligne
|
||||
if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
|
||||
tablename = schema + "_travaux_prevus_ligne"
|
||||
else :
|
||||
else:
|
||||
tablename = schema + "_travaux_prevus_ligne_" + self.annee_5.text()
|
||||
tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis
|
||||
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename+"','gid')"
|
||||
SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multilinestring
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename + "','gid')"
|
||||
SQL_travaux_prevus = "CREATE TABLE " + schema + "." + tablename + champ_travaux_prevus_multilinestring
|
||||
|
||||
cur.execute(SQL_travaux_prevus)
|
||||
cur.execute(RETURNE)
|
||||
@ -297,36 +308,37 @@ def create_travaux(self,schema,cur,con,host,port,dbname,user,mdp):
|
||||
SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now()
|
||||
FROM layer_styles
|
||||
WHERE description = 'travaux_prevus_ligne_modele_v3'"""
|
||||
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
|
||||
SQL_GRANT_TABLE = "GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_sig;GRANT ALL ON SEQUENCE " + sequence_name + " TO grp_qgis;"
|
||||
|
||||
cur.execute(SQL_pkey)
|
||||
cur.execute(SQL_trigger_date_creation)
|
||||
cur.execute(SQL_trigger_date_maj)
|
||||
cur.execute(SQL_trigger_length_m)
|
||||
cur.execute(SQL_trigger_length_km)
|
||||
cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles
|
||||
# Enregistrement du style (comme style par defaut) dans la table layer_styles
|
||||
cur.execute(SQL_style)
|
||||
cur.execute(SQL_GRANT_TABLE)
|
||||
|
||||
con.commit()
|
||||
|
||||
## 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(schema, tablename, geom)
|
||||
|
||||
layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
|
||||
#**********point
|
||||
# **********point
|
||||
if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
|
||||
tablename = schema + "_travaux_prevus_point"
|
||||
else :
|
||||
else:
|
||||
tablename = schema + "_travaux_prevus_point_" + self.annee_5.text()
|
||||
tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis
|
||||
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename+"','gid')"
|
||||
SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_point
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename + "','gid')"
|
||||
SQL_travaux_prevus = "CREATE TABLE " + schema + "." + tablename + champ_travaux_prevus_point
|
||||
|
||||
cur.execute(SQL_travaux_prevus)
|
||||
cur.execute(RETURNE)
|
||||
@ -341,38 +353,40 @@ def create_travaux(self,schema,cur,con,host,port,dbname,user,mdp):
|
||||
SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now()
|
||||
FROM layer_styles
|
||||
WHERE description = 'travaux_prevus_point_modele_v3'"""
|
||||
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
|
||||
SQL_GRANT_TABLE = "GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_sig;GRANT ALL ON SEQUENCE " + sequence_name + " TO grp_qgis;"
|
||||
|
||||
cur.execute(SQL_pkey)
|
||||
cur.execute(SQL_trigger_date_creation)
|
||||
cur.execute(SQL_trigger_date_maj)
|
||||
cur.execute(SQL_trigger_coordonnees)
|
||||
cur.execute(SQL_style) ## Enregistrement du style (comme style par defaut) dans la table layer_styles
|
||||
# Enregistrement du style (comme style par defaut) dans la table layer_styles
|
||||
cur.execute(SQL_style)
|
||||
cur.execute(SQL_GRANT_TABLE)
|
||||
|
||||
con.commit()
|
||||
|
||||
## 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(schema, tablename, geom)
|
||||
|
||||
layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
|
||||
def create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
### Creation de la table habitat
|
||||
|
||||
def create_habita(self, schema, cur, con, host, port, dbname, user, mdp):
|
||||
# Creation de la table habitat
|
||||
if self.couche_habitat.isChecked():
|
||||
if self.annee_2.text() == 'aaaa' or self.annee_2.text() == '':
|
||||
tablename = schema + "_habitat"
|
||||
else :
|
||||
else:
|
||||
tablename = schema + "_habitat_" + self.annee_2.text()
|
||||
|
||||
tablename_1=tablename+"_points"
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+tablename_1+"','gid')"
|
||||
tablename_1 = tablename + "_points"
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename_1 + "','gid')"
|
||||
tablename_qgis = tablename_1[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis
|
||||
SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_1 + champ_vegethab_point
|
||||
SQL_VEGETHAB = "CREATE TABLE " + schema + "." + tablename_1 + champ_vegethab_point
|
||||
|
||||
print(RETURNE)
|
||||
print('')
|
||||
@ -387,7 +401,7 @@ def create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
SELECT f_table_catalog, '""" + schema + "', '" + tablename_1 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now()
|
||||
FROM layer_styles
|
||||
WHERE description = 'vegethab_points_modele_v3'"""
|
||||
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_1+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
|
||||
SQL_GRANT_TABLE = "GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename_1 + " TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename_1 + " TO grp_sig;GRANT ALL ON SEQUENCE " + sequence_name + " TO grp_qgis;"
|
||||
|
||||
cur.execute(SQL_pkey)
|
||||
cur.execute(SQL_trigger_coordonnees)
|
||||
@ -395,19 +409,19 @@ def create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
cur.execute(SQL_GRANT_TABLE)
|
||||
|
||||
con.commit()
|
||||
### 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(schema, tablename_1, geom)
|
||||
|
||||
layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
|
||||
tablename_2=tablename+"_lignes"
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename_2+"','gid')"
|
||||
tablename_2 = tablename + "_lignes"
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename_2 + "','gid')"
|
||||
tablename_qgis = tablename_2[1:]
|
||||
SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_2 + champ_vegethab_multilinestring
|
||||
SQL_VEGETHAB = "CREATE TABLE " + schema + "." + tablename_2 + champ_vegethab_multilinestring
|
||||
|
||||
cur.execute(SQL_VEGETHAB)
|
||||
cur.execute(RETURNE)
|
||||
@ -420,7 +434,7 @@ def create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
SELECT f_table_catalog, '""" + schema + "', '" + tablename_2 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now()
|
||||
FROM layer_styles
|
||||
WHERE description = 'vegethab_lignes_modele_v3'"""
|
||||
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_2+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
|
||||
SQL_GRANT_TABLE = "GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename_2 + " TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename_2 + " TO grp_sig;GRANT ALL ON SEQUENCE " + sequence_name + " TO grp_qgis;"
|
||||
|
||||
cur.execute(SQL_pkey)
|
||||
cur.execute(SQL_trigger_length_m)
|
||||
@ -429,19 +443,19 @@ def create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
cur.execute(SQL_GRANT_TABLE)
|
||||
|
||||
con.commit()
|
||||
### 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(schema, tablename_2, geom)
|
||||
|
||||
layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
|
||||
tablename_3=tablename+"_polygones"
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename_3+"','gid')"
|
||||
tablename_3 = tablename + "_polygones"
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename_3 + "','gid')"
|
||||
tablename_qgis = tablename_3[1:]
|
||||
SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_3 + champ_vegethab_multipolygon
|
||||
SQL_VEGETHAB = "CREATE TABLE " + schema + "." + tablename_3 + champ_vegethab_multipolygon
|
||||
|
||||
cur.execute(SQL_VEGETHAB)
|
||||
cur.execute(RETURNE)
|
||||
@ -454,7 +468,7 @@ def create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
SELECT f_table_catalog, '""" + schema + "', '" + tablename_3 + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now()
|
||||
FROM layer_styles
|
||||
WHERE description = 'vegethab_polygones_modele_v3'"""
|
||||
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename_3+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
|
||||
SQL_GRANT_TABLE = "GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename_3 + " TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename_3 + " TO grp_sig;GRANT ALL ON SEQUENCE " + sequence_name + " TO grp_qgis;"
|
||||
|
||||
cur.execute(SQL_pkey)
|
||||
cur.execute(SQL_trigger_area_m2)
|
||||
@ -463,34 +477,36 @@ def create_habita(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
cur.execute(SQL_GRANT_TABLE)
|
||||
|
||||
con.commit()
|
||||
### 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(schema, tablename_3, geom)
|
||||
|
||||
layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
def create_vierge(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
### Creation de la table vierge
|
||||
self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
|
||||
|
||||
def create_vierge(self, schema, cur, con, host, port, dbname, user, mdp):
|
||||
# Creation de la table vierge
|
||||
if self.couche_vierge.isChecked():
|
||||
if self.annee_4.text() == 'aaaa' or self.annee_4.text() == '':
|
||||
tablename = schema + "_" + self.nom_couche_vierge.text().lower()
|
||||
else :
|
||||
else:
|
||||
tablename = schema + "_" + self.nom_couche_vierge.text().lower() + "_" + self.annee_4.text()
|
||||
tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis
|
||||
|
||||
if self.couche_vierge_point.isChecked() == 1 :
|
||||
if self.couche_vierge_point.isChecked() == 1:
|
||||
champ_vierge = champ_viergePoint
|
||||
|
||||
if self.couche_vierge_ligne.isChecked() == 1 :
|
||||
if self.couche_vierge_ligne.isChecked() == 1:
|
||||
champ_vierge = champ_viergeLigne
|
||||
|
||||
if self.couche_vierge_polygone.isChecked() == 1 :
|
||||
if self.couche_vierge_polygone.isChecked() == 1:
|
||||
champ_vierge = champ_viergePolygone
|
||||
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename+"','gid')"
|
||||
SQL_vierge = "CREATE TABLE " + schema + "."+ tablename + champ_vierge
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename + "','gid')"
|
||||
SQL_vierge = "CREATE TABLE " + schema + "." + tablename + champ_vierge
|
||||
|
||||
cur.execute(SQL_vierge)
|
||||
cur.execute(RETURNE)
|
||||
@ -503,29 +519,29 @@ def create_vierge(self,schema,cur,con,host ,port ,dbname ,user ,mdp):
|
||||
SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();"
|
||||
SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();"
|
||||
SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();"
|
||||
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
|
||||
SQL_GRANT_TABLE = "GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON " + schema + "." + tablename + " TO grp_sig;GRANT ALL ON SEQUENCE " + sequence_name + " TO grp_qgis;"
|
||||
|
||||
cur.execute(SQL_pkey)
|
||||
cur.execute(SQL_GRANT_TABLE)
|
||||
|
||||
if self.couche_vierge_point.isChecked() == 1 :
|
||||
if self.couche_vierge_point.isChecked() == 1:
|
||||
cur.execute(SQL_trigger_coordonnees)
|
||||
|
||||
if self.couche_vierge_ligne.isChecked() == 1 :
|
||||
if self.couche_vierge_ligne.isChecked() == 1:
|
||||
cur.execute(SQL_trigger_length_m)
|
||||
cur.execute(SQL_trigger_length_km)
|
||||
|
||||
if self.couche_vierge_polygone.isChecked() == 1 :
|
||||
if self.couche_vierge_polygone.isChecked() == 1:
|
||||
cur.execute(SQL_trigger_area_m2)
|
||||
cur.execute(SQL_trigger_area_ha)
|
||||
|
||||
con.commit()
|
||||
|
||||
### 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(schema, tablename, geom)
|
||||
|
||||
layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user