flake8 copie
This commit is contained in:
parent
7df08ae02a
commit
3564209574
@ -4,27 +4,25 @@ __email__ = "info@3liz.org"
|
||||
|
||||
|
||||
from qgis.core import QgsApplication
|
||||
from qgis.PyQt.QtCore import QCoreApplication, Qt, QTranslator, QUrl
|
||||
from qgis.PyQt.QtCore import QSettings, 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>
|
||||
import socket
|
||||
# include <QSettings>
|
||||
import os
|
||||
from .about_form import AboutDialog
|
||||
from .tools.resources import (
|
||||
plugin_path,
|
||||
# plugin_path,
|
||||
pyperclip,
|
||||
resources_path,
|
||||
maj_verif,
|
||||
)
|
||||
pyperclip()
|
||||
from .copie_editor import Copie_Editor
|
||||
from .about_form import AboutDialog
|
||||
|
||||
from qgis.PyQt.QtCore import *
|
||||
|
||||
class PgCopie:
|
||||
def __init__(self):
|
||||
@ -36,18 +34,18 @@ class PgCopie:
|
||||
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_COPIE','version')
|
||||
version = qgis.utils.pluginMetadata('CenRa_COPIE', 'version')
|
||||
s = QSettings()
|
||||
versionUse = s.value("copie/version", 1, type=str)
|
||||
if str(versionUse) != str(version) :
|
||||
if str(versionUse) != str(version):
|
||||
s.setValue("copie/version", str(version))
|
||||
print(versionUse,version)
|
||||
print(versionUse, version)
|
||||
self.open_about_dialog()
|
||||
|
||||
def initGui(self):
|
||||
@ -65,12 +63,12 @@ class PgCopie:
|
||||
if not self.action_editor:
|
||||
self.action_editor = Copie_Editor()
|
||||
|
||||
self.copie_editor = QAction(icon, 'Copie',None)
|
||||
self.copie_editor = QAction(icon, 'Copie', None)
|
||||
self.toolBar.addAction(self.copie_editor)
|
||||
self.copie_editor.triggered.connect(self.open_editor)
|
||||
self.copie_editor.setEnabled(False)
|
||||
IPAddr=socket.gethostbyname(socket.gethostname())
|
||||
if os.access('N:/',os.R_OK):
|
||||
# IPAddr = socket.gethostbyname(socket.gethostname())
|
||||
if os.access('N:/', os.R_OK):
|
||||
self.copie_editor.setEnabled(True)
|
||||
|
||||
def open_about_dialog(self):
|
||||
@ -79,6 +77,7 @@ class PgCopie:
|
||||
"""
|
||||
dialog = AboutDialog(iface)
|
||||
dialog.exec()
|
||||
|
||||
def open_help():
|
||||
""" Open the online help. """
|
||||
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
|
||||
@ -90,8 +89,7 @@ class PgCopie:
|
||||
def unload(self):
|
||||
""" Unload the plugin. """
|
||||
if self.action_editor:
|
||||
iface.removePluginMenu('CenRa_Copie',self.copie_editor)
|
||||
|
||||
iface.removePluginMenu('CenRa_Copie', self.copie_editor)
|
||||
|
||||
if self.provider:
|
||||
QgsApplication.processingRegistry().removeProvider(self.provider)
|
||||
|
||||
@ -3,7 +3,7 @@ import os.path
|
||||
from pathlib import Path
|
||||
|
||||
from qgis.PyQt import uic
|
||||
from qgis.PyQt.QtGui import QPixmap
|
||||
# from qgis.PyQt.QtGui import QPixmap
|
||||
from qgis.PyQt.QtWidgets import QDialog
|
||||
|
||||
from .tools.resources import devlog
|
||||
@ -43,4 +43,4 @@ class AboutDialog(QDialog, ABOUT_FORM_CLASS):
|
||||
Run some actions when
|
||||
the user closes the dialog
|
||||
"""
|
||||
self.close()
|
||||
self.close()
|
||||
|
||||
@ -4,78 +4,70 @@ 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.QtCore import *
|
||||
from qgis.PyQt.QtGui import *
|
||||
from qgis.PyQt.QtWidgets import QDialog, QMessageBox
|
||||
from qgis.PyQt import QtGui
|
||||
|
||||
from qgis.core import *
|
||||
from qgis.core import QgsDataSourceUri
|
||||
import os
|
||||
from qgis.core import QgsDataSourceUri, QgsSettings, QgsWkbTypes
|
||||
|
||||
try:
|
||||
from .tools.PythonSQL import login_base
|
||||
except:
|
||||
except ValueError:
|
||||
print('Pas de fichier PythonSQL')
|
||||
from .tools.SQLRequet import *
|
||||
|
||||
from .tools.resources import (
|
||||
load_ui,
|
||||
resources_path,
|
||||
send_issues,
|
||||
# send_issues,
|
||||
)
|
||||
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
|
||||
# import os.path
|
||||
# import webbrowser
|
||||
# import psycopg2
|
||||
# import psycopg2.extras
|
||||
# import base64
|
||||
|
||||
EDITOR_CLASS = load_ui('CenRa_Copie_base.ui')
|
||||
|
||||
class Copie_Editor(QDialog, EDITOR_CLASS):
|
||||
|
||||
class Copie_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
|
||||
|
||||
def raise_(self):
|
||||
"""Run method that performs all the real work"""
|
||||
layer = self.iface.activeLayer()
|
||||
|
||||
if layer == None :
|
||||
#self.iface.messageBar().pushMessage(u"Vous devez sélectionner une table !", level=QgsMessageBar.WARNING, duration=5)
|
||||
self.iface.messageBar().pushMessage("Ooops", u"Vous devez sélectionner une table !", level=Qgis.Warning, duration=5)
|
||||
if layer is None:
|
||||
# self.iface.messageBar().pushMessage(u"Vous devez sélectionner une table !", level=QgsMessageBar.WARNING, duration=5)
|
||||
self.iface.messageBar().pushMessage("Ooops", u"Vous devez sélectionner une table !", level=1, duration=5)
|
||||
|
||||
else :
|
||||
else:
|
||||
# Récupération des sources de la couche active
|
||||
list_sources = layer.source().split(" ")
|
||||
# dbname
|
||||
# dbname
|
||||
source_db = [s for s in list_sources if "dbname" in s][0].split("'")[1]
|
||||
# schema
|
||||
# schema
|
||||
source_schema = [s for s in list_sources if "table" in s][0].split('"')[1]
|
||||
# tablename
|
||||
# tablename
|
||||
source_tablename = [s for s in list_sources if "table" in s][0].split('"')[3]
|
||||
|
||||
|
||||
account = login_base("account")
|
||||
sigdb = account[5]
|
||||
|
||||
|
||||
if source_db != sigdb:
|
||||
#self.iface.messageBar().pushMessage(u"Un référentiel ne peut être copié, utilisez les filtres !", level=QgsMessageBar.CRITICAL, duration=10)
|
||||
self.iface.messageBar().pushMessage("Ooops", u"Vous ne pouvez copier des couches que dans sigXX", level=Qgis.Critical, duration=5)
|
||||
# self.iface.messageBar().pushMessage(u"Un référentiel ne peut être copié, utilisez les filtres !", level=QgsMessageBar.CRITICAL, duration=10)
|
||||
self.iface.messageBar().pushMessage("Ooops", u"Vous ne pouvez copier des couches que dans sigXX", level=2, duration=5)
|
||||
else:
|
||||
user = account[0]
|
||||
mdp = account[1]
|
||||
@ -85,7 +77,7 @@ class Copie_Editor(QDialog, EDITOR_CLASS):
|
||||
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 catalog_name, schema_name
|
||||
FROM information_schema.schemata
|
||||
@ -102,26 +94,25 @@ class Copie_Editor(QDialog, EDITOR_CLASS):
|
||||
|
||||
list_brut = str(next(cur))
|
||||
|
||||
list = list_brut [2:-3]
|
||||
list = list_brut[2:-3]
|
||||
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)
|
||||
|
||||
|
||||
self.table_source.setText(source_schema + "." + source_tablename) # Affiche le nom de la table source
|
||||
# Affiche le nom de la table source
|
||||
self.table_source.setText(source_schema + "." + source_tablename)
|
||||
# show the dialog
|
||||
self.show()
|
||||
# Run the dialog event loop
|
||||
result = self.exec()
|
||||
# See if OK was pressed
|
||||
if result:
|
||||
#******************************debut script*********************************
|
||||
|
||||
|
||||
# ******************************debut script*********************************
|
||||
account = login_base("account")
|
||||
user = account[0]
|
||||
mdp = account[1]
|
||||
@ -136,45 +127,45 @@ class Copie_Editor(QDialog, EDITOR_CLASS):
|
||||
|
||||
# Récupération des sources de la couche active
|
||||
list_sources = layer.source().split(" ")
|
||||
# dbname
|
||||
# dbname
|
||||
source_db = [s for s in list_sources if "dbname" in s][0].split("'")[1]
|
||||
# schema
|
||||
# schema
|
||||
source_schema = [s for s in list_sources if "table" in s][0].split('"')[1]
|
||||
# tablename
|
||||
# tablename
|
||||
source_tablename = [s for s in list_sources if "table" in s][0].split('"')[3]
|
||||
|
||||
if self.schema.currentIndex() == -1 :
|
||||
if self.schema.currentIndex() == - 1:
|
||||
QMessageBox.warning(None, "Oups :", "Veuillez choisir un dossier de destination.")
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
schema = self.schema.currentText()
|
||||
|
||||
if self.table_destination.text() == '' :
|
||||
if self.table_destination.text() == '':
|
||||
QMessageBox.warning(None, "Oups :", "Veuillez choisir un nom de destination.")
|
||||
return
|
||||
|
||||
if self.annee.text() == 'aaaa' or self.annee.text() == '':
|
||||
return
|
||||
|
||||
if self.annee.text() == 'aaaa' or self.annee.text() == '':
|
||||
tablename = schema + "_" + self.table_destination.text().lower()
|
||||
else :
|
||||
else:
|
||||
tablename = schema + "_" + self.table_destination.text().lower() + "_" + self.annee.text()
|
||||
|
||||
tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis
|
||||
|
||||
if self.table_vide.isChecked() == 1 :
|
||||
if self.table_vide.isChecked() == 1:
|
||||
SQL_table = "CREATE TABLE " + schema + "." + tablename + " AS SELECT * FROM " + source_schema + "." + source_tablename + " LIMIT 0;"
|
||||
else :
|
||||
else:
|
||||
SQL_table = "CREATE TABLE " + schema + "." + tablename + " AS SELECT * FROM " + source_schema + "." + source_tablename
|
||||
|
||||
SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)"
|
||||
SQL_sequence_01 = "CREATE SEQUENCE " + schema + "." + tablename + "_gid_seq" + " INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;"
|
||||
SQL_sequence_02 = "ALTER TABLE " + schema + "." + tablename + " ALTER COLUMN gid SET DEFAULT nextval(\'" + schema + "." + tablename + "_gid_seq\'::regclass);"
|
||||
SQL_sequence_02 = "ALTER TABLE " + schema + "." + tablename + " ALTER COLUMN gid SET DEFAULT nextval(\'" + schema + "." + tablename + "_gid_seq\'::regclass);"
|
||||
SQL_sequence_03 = "SELECT setval(\'" + schema + "." + tablename + "_gid_seq\'::regclass, (SELECT max(gid) AS max_gid FROM " + schema + "." + tablename + "));"
|
||||
SQL_sequence_04 = "ALTER SEQUENCE " + schema + "." + tablename + "_gid_seq" + " OWNED BY " + schema + "." + tablename + ".gid;"
|
||||
|
||||
SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();"
|
||||
SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();"
|
||||
SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();"
|
||||
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_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();"
|
||||
|
||||
cur.execute(SQL_table)
|
||||
@ -184,38 +175,38 @@ class Copie_Editor(QDialog, EDITOR_CLASS):
|
||||
cur.execute(SQL_sequence_03)
|
||||
cur.execute(SQL_sequence_04)
|
||||
|
||||
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename+"','gid')"
|
||||
RETURNE = "SELECT pg_get_serial_sequence('" + schema + "." + tablename + "','gid')"
|
||||
cur.execute(RETURNE)
|
||||
sequence_name = cur.fetchone()[0]
|
||||
print(sequence_name)
|
||||
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_GRANT_TABLE)
|
||||
|
||||
if layer.wkbType() == QgsWkbTypes.PointGeometry :
|
||||
if layer.wkbType() == QgsWkbTypes.PointGeometry:
|
||||
cur.execute(SQL_trigger_coordonnees)
|
||||
|
||||
if layer.wkbType() == QgsWkbTypes.LineGeometry :
|
||||
if layer.wkbType() == QgsWkbTypes.LineGeometry:
|
||||
cur.execute(SQL_trigger_length_m)
|
||||
cur.execute(SQL_trigger_length_km)
|
||||
cur.execute(SQL_trigger_length_km)
|
||||
|
||||
if layer.wkbType() == QgsWkbTypes.PolygonGeometry :
|
||||
if layer.wkbType() == QgsWkbTypes.PolygonGeometry:
|
||||
cur.execute(SQL_trigger_area_m2)
|
||||
cur.execute(SQL_trigger_area_ha)
|
||||
|
||||
con.commit()
|
||||
|
||||
### Affichage de la table
|
||||
|
||||
con.commit()
|
||||
|
||||
# Affichage de la table
|
||||
uri = QgsDataSourceUri()
|
||||
# set host name, port, database name, username and password
|
||||
uri.setConnection(host ,port ,dbname ,user ,mdp)
|
||||
# set database schema, table name, geometry column and optionaly subset (WHERE clause)
|
||||
uri.setDataSource(schema, tablename, geom)
|
||||
# set host name, port, database name, username and password
|
||||
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")
|
||||
|
||||
|
||||
con.commit()
|
||||
con.close()
|
||||
|
||||
#self.iface.messageBar().pushMessage("Table \"" + source_schema + "." + source_tablename + u"\" copiée dans \"" + schema + "." + tablename + "\"." , level=QgsMessageBar.INFO, duration=10)
|
||||
self.iface.messageBar().pushMessage("Bravo!", "Table \"" + source_schema + "." + source_tablename + u"\" copiée dans \"" + schema + "." + tablename + "\".", level=Qgis.Success, duration=5)
|
||||
# self.iface.messageBar().pushMessage("Table \"" + source_schema + "." + source_tablename + u"\" copiée dans \"" + schema + "." + tablename + "\"." , level=QgsMessageBar.INFO, duration=10)
|
||||
self.iface.messageBar().pushMessage("Bravo!", "Table \"" + source_schema + "." + source_tablename + u"\" copiée dans \"" + schema + "." + tablename + "\".", level=3, duration=5)
|
||||
pass
|
||||
|
||||
@ -1,141 +0,0 @@
|
||||
|
||||
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_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))"""
|
||||
champ_viergeLigne = """(gid serial NOT NULL, commentaire text, longueur_m double precision, longueur_km double precision, geom geometry(MultiLineString,2154))"""
|
||||
champ_viergePoint = """(gid serial NOT NULL, commentaire text, x_wgs84 double precision, y_wgs84 double precision, geom geometry(Point,2154))"""
|
||||
|
||||
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_vegethab_point = """(
|
||||
gid serial NOT NULL ,
|
||||
cd_eu_01 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_01 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_1 bigint,
|
||||
cd_eu_02 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_02 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_2 bigint,
|
||||
cd_eu_03 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_03 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_3 bigint,
|
||||
milieu_cod character varying(254) COLLATE pg_catalog."default",
|
||||
milieu_lib character varying(254) COLLATE pg_catalog."default",
|
||||
surface_m2 numeric,
|
||||
surface_ha numeric,
|
||||
commentair character varying(254) COLLATE pg_catalog."default",
|
||||
date_creat date,
|
||||
date_maj date,
|
||||
num_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
type_unite character varying(254) COLLATE pg_catalog."default",
|
||||
dynamique character varying(254) COLLATE pg_catalog."default",
|
||||
gestio_obs character varying(254) COLLATE pg_catalog."default",
|
||||
degrad_obs character varying(254) COLLATE pg_catalog."default",
|
||||
eta_conser character varying(254) COLLATE pg_catalog."default",
|
||||
clas_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
alli_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
syntaxon character varying(254) COLLATE pg_catalog."default",
|
||||
n2000 character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_aura character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_cbna character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_cbnmc character varying(254) COLLATE pg_catalog."default",
|
||||
vege_enjeu character varying(254) COLLATE pg_catalog."default",
|
||||
num_photo character varying(254) COLLATE pg_catalog."default",
|
||||
nature_obs character varying(254) COLLATE pg_catalog."default",
|
||||
date_sais date,
|
||||
s_al_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
alli_name character varying(254) COLLATE pg_catalog."default",
|
||||
salli_name character varying(254) COLLATE pg_catalog."default",
|
||||
class_name character varying(254) COLLATE pg_catalog."default",
|
||||
geom geometry(Point,2154)
|
||||
)
|
||||
"""
|
||||
champ_vegethab_multilinestring = """(
|
||||
gid serial NOT NULL ,
|
||||
cd_eu_01 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_01 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_1 bigint,
|
||||
cd_eu_02 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_02 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_2 bigint,
|
||||
cd_eu_03 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_03 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_3 bigint,
|
||||
milieu_cod character varying(254) COLLATE pg_catalog."default",
|
||||
milieu_lib character varying(254) COLLATE pg_catalog."default",
|
||||
surface_m2 numeric,
|
||||
surface_ha numeric,
|
||||
commentair character varying(254) COLLATE pg_catalog."default",
|
||||
date_creat date,
|
||||
date_maj date,
|
||||
num_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
type_unite character varying(254) COLLATE pg_catalog."default",
|
||||
dynamique character varying(254) COLLATE pg_catalog."default",
|
||||
gestio_obs character varying(254) COLLATE pg_catalog."default",
|
||||
degrad_obs character varying(254) COLLATE pg_catalog."default",
|
||||
eta_conser character varying(254) COLLATE pg_catalog."default",
|
||||
clas_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
alli_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
syntaxon character varying(254) COLLATE pg_catalog."default",
|
||||
n2000 character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_aura character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_cbna character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_cbnmc character varying(254) COLLATE pg_catalog."default",
|
||||
vege_enjeu character varying(254) COLLATE pg_catalog."default",
|
||||
num_photo character varying(254) COLLATE pg_catalog."default",
|
||||
nature_obs character varying(254) COLLATE pg_catalog."default",
|
||||
date_sais date,
|
||||
s_al_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
alli_name character varying(254) COLLATE pg_catalog."default",
|
||||
salli_name character varying(254) COLLATE pg_catalog."default",
|
||||
class_name character varying(254) COLLATE pg_catalog."default",
|
||||
geom geometry(MultiLineString,2154)
|
||||
)
|
||||
"""
|
||||
champ_vegethab_multipolygon = """(
|
||||
gid serial NOT NULL ,
|
||||
cd_eu_01 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_01 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_1 bigint,
|
||||
cd_eu_02 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_02 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_2 bigint,
|
||||
cd_eu_03 character varying(254) COLLATE pg_catalog."default",
|
||||
lb_eu_03 character varying(254) COLLATE pg_catalog."default",
|
||||
occupati_3 bigint,
|
||||
milieu_cod character varying(254) COLLATE pg_catalog."default",
|
||||
milieu_lib character varying(254) COLLATE pg_catalog."default",
|
||||
surface_m2 numeric,
|
||||
surface_ha numeric,
|
||||
commentair character varying(254) COLLATE pg_catalog."default",
|
||||
date_creat date,
|
||||
date_maj date,
|
||||
num_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
type_unite character varying(254) COLLATE pg_catalog."default",
|
||||
dynamique character varying(254) COLLATE pg_catalog."default",
|
||||
gestio_obs character varying(254) COLLATE pg_catalog."default",
|
||||
degrad_obs character varying(254) COLLATE pg_catalog."default",
|
||||
eta_conser character varying(254) COLLATE pg_catalog."default",
|
||||
clas_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
alli_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
syntaxon character varying(254) COLLATE pg_catalog."default",
|
||||
n2000 character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_aura character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_cbna character varying(254) COLLATE pg_catalog."default",
|
||||
lrr_cbnmc character varying(254) COLLATE pg_catalog."default",
|
||||
vege_enjeu character varying(254) COLLATE pg_catalog."default",
|
||||
num_photo character varying(254) COLLATE pg_catalog."default",
|
||||
nature_obs character varying(254) COLLATE pg_catalog."default",
|
||||
date_sais date,
|
||||
s_al_phyto character varying(254) COLLATE pg_catalog."default",
|
||||
alli_name character varying(254) COLLATE pg_catalog."default",
|
||||
salli_name character varying(254) COLLATE pg_catalog."default",
|
||||
class_name character varying(254) COLLATE pg_catalog."default",
|
||||
geom geometry(MultiPolygon,2154)
|
||||
)
|
||||
"""
|
||||
@ -3,9 +3,9 @@
|
||||
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
|
||||
|
||||
@ -108,71 +108,77 @@ 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')
|
||||
# print(URL)
|
||||
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')
|
||||
return devmaj
|
||||
devmaj = devmaj + qgis.utils.pluginMetadata(NAME, 'changelog')
|
||||
return devmaj
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user