117 lines
3.3 KiB
Python
117 lines
3.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
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 qgis.PyQt.QtCore import QSettings
|
|
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog
|
|
from qgis.PyQt.QtGui import QIcon
|
|
from PyQt5.QtCore import *
|
|
from PyQt5.QtGui import *
|
|
from PyQt5 import QtGui
|
|
from qgis.core import *
|
|
from qgis.core import QgsDataSourceUri
|
|
|
|
try:
|
|
from .tools.PythonSQL import login_base
|
|
except:
|
|
print('Pas de fichier PythonSQL')
|
|
from .tools.SQLRequet import *
|
|
|
|
from .tools.resources import (
|
|
load_ui,
|
|
resources_path,
|
|
send_issues,
|
|
create_vierge,
|
|
create_contour,
|
|
create_travaux,
|
|
create_habita
|
|
)
|
|
from .issues import CenRa_Issues
|
|
|
|
import os.path
|
|
import webbrowser, os
|
|
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):
|
|
|
|
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.iface = iface
|
|
|
|
### Outil Ajout de nouvelles couche a un dossier
|
|
def raise_(self):
|
|
self.activateWindow()
|
|
account = login_base("account")
|
|
user = account[0]
|
|
mdp = account[1]
|
|
host = account[2]
|
|
port = account[3]
|
|
dbname = account[4]
|
|
cur = account[7]
|
|
con = account[8]
|
|
# 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";"""
|
|
|
|
cur.execute(SQL)
|
|
|
|
list_brut = str(next(cur))
|
|
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
|
|
|
|
# show the dialog
|
|
self.show()
|
|
# Run the dialog event loop
|
|
result = self.exec_()
|
|
# See if OK was pressed
|
|
if result == 1:
|
|
#******************************debut script*********************************
|
|
account = login_base("account")
|
|
user = account[0]
|
|
mdp = account[1]
|
|
host = account[2]
|
|
port = account[3]
|
|
dbname = account[4]
|
|
cur = account[7]
|
|
con = account[8]
|
|
|
|
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)
|
|
|
|
con.close()
|
|
pass |