diff --git a/CenRa_POSTGIS/metadata.txt b/CenRa_POSTGIS/metadata.txt
index 00e41a9e..5f793ce4 100644
--- a/CenRa_POSTGIS/metadata.txt
+++ b/CenRa_POSTGIS/metadata.txt
@@ -12,7 +12,7 @@
name=CenRa_POSTGIS
qgisMinimumVersion=3.0
description=Permet de crée un dossier dans la base PostGis
-version=2.3
+version=2.4
author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr
@@ -21,7 +21,7 @@ email=si_besoin@cen-rhonealpes.fr
# Optional items:
# Uncomment the following line and add your changelog entries:
-changelog=
CenRa_POSTGIS:
22/01/2025 - Version 2.3:
- Correctif sur la creation de projet.21/01/2025 - Version 2.2:
- Correctif sur la longeur des nom.07/01/2025 - Version 2.1:
- ByPass du certif ssl ci erreur.22/10/2024 - Version 2.0:
- Refont du code.
+changelog=CenRa_POSTGIS:
23/01/2025 - Version 2.4:
- Correctif sur les pkey.22/01/2025 - Version 2.3:
- Correctif sur la creation de projet.21/01/2025 - Version 2.2:
- Correctif sur la longeur des nom.07/01/2025 - Version 2.1:
- ByPass du certif ssl ci erreur.22/10/2024 - Version 2.0:
- Refont du code.
# tags are comma separated with spaces allowed
tags=cenra, postgis, database
diff --git a/CenRa_POSTGIS/postgis_creator.py b/CenRa_POSTGIS/postgis_creator.py
index f5b85738..90ce8d9a 100644
--- a/CenRa_POSTGIS/postgis_creator.py
+++ b/CenRa_POSTGIS/postgis_creator.py
@@ -21,6 +21,10 @@ from .tools.resources import (
resources_path,
login_base,
send_issues,
+ create_vierge,
+ create_contour,
+ create_travaux,
+ create_habita
)
from .issues import CenRa_Issues
@@ -89,347 +93,11 @@ class Postgis_Creator(QDialog, EDITOR_CLASS):
else:
iface.messageBar().pushMessage("POSTGRESQL :", "Pas de couche sélectionnée, création refusée.", level=Qgis.Warning, duration=30)
- ### Creation de la table contour
- if self.couche_contour.isChecked(): # Verifie si la checkbox est cochee
- if self.annee_1.text() == 'aaaa' or self.annee_1.text() == '':
- tablename = schema + "_contour"
- else :
- tablename = schema + "_contour_" + self.annee_1.text()
- tablename_qgis = tablename[1:] # Permet d'enlever le "_", ajouter a la premiere etape, dans qgis
+ 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)
- SQL_contour = "CREATE TABLE " + schema + "."+ tablename + champ_contour
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (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_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();"
-
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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 "+schema+"."+tablename+"_gid_seq TO grp_qgis;"
-
- cur.execute(SQL_contour)
- 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
- cur.execute(SQL_GRANT_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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- ### 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 :
- tablename = schema + "_habitat_" + self.annee_2.text()
- tablename_1=tablename+"_points"
- 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_pkey = "ALTER TABLE " + schema + "." + tablename_1 + " ADD CONSTRAINT " + tablename_1 + "_pkey" + " PRIMARY KEY (gid)"
- SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename_1 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_1 + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();"
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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 "+schema+"."+tablename_1+"_gid_seq TO grp_qgis;"
-
- cur.execute(SQL_VEGETHAB)
- cur.execute(SQL_pkey)
- cur.execute(SQL_trigger_coordonnees)
- cur.execute(SQL_style)
- cur.execute(SQL_GRANT_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_1, geom)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- tablename_2=tablename+"_lignes"
- tablename_qgis = tablename_2[1:]
- SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_2 + champ_vegethab_multilinestring
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename_2 + " ADD CONSTRAINT " + tablename_2 + "_pkey" + " PRIMARY KEY (gid)"
- SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();"
- SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();"
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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 "+schema+"."+tablename_2+"_gid_seq TO grp_qgis;"
-
- cur.execute(SQL_VEGETHAB)
- cur.execute(SQL_pkey)
- cur.execute(SQL_trigger_length_m)
- cur.execute(SQL_trigger_length_km)
- cur.execute(SQL_style)
- cur.execute(SQL_GRANT_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_2, geom)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- tablename_3=tablename+"_polygones"
- tablename_qgis = tablename_3[1:]
- SQL_VEGETHAB = "CREATE TABLE "+ schema + "."+ tablename_3 + champ_vegethab_multipolygon
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename_3 + " ADD CONSTRAINT " + tablename_3 + "_pkey" + " PRIMARY KEY (gid)"
- SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();"
- SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();"
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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 "+schema+"."+tablename_3+"_gid_seq TO grp_qgis;"
-
- cur.execute(SQL_VEGETHAB)
- cur.execute(SQL_pkey)
- cur.execute(SQL_trigger_area_m2)
- cur.execute(SQL_trigger_area_ha)
- cur.execute(SQL_style)
- cur.execute(SQL_GRANT_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_3, geom)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
- '''
- SQL_habitat = "CREATE TABLE " + schema + "."+ tablename + champ_habitat
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (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_concat_cd_cb = "CREATE TRIGGER concat_cd_cb" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.concat_cd_cb();"
- 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();"
-
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- SELECT f_table_catalog, '""" + schema + "', '" + tablename + """', f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, now()
- FROM layer_styles
- WHERE description = 'habitat_modele_v3'"""
-
- cur.execute(SQL_habitat)
- cur.execute(SQL_pkey)
- cur.execute(SQL_trigger_area_m2)
- cur.execute(SQL_trigger_area_ha)
- cur.execute(SQL_trigger_concat_cd_cb)
- 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
-
- 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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
- '''
- ### Creation de la table travaux prevus
- if self.couche_travaux_prevus.isChecked():
- #**********Poly
- if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
- tablename = schema + "_travaux_prevus_poly"
- 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
-
- SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multipolygon
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_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();"
- 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_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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 "+schema+"."+tablename+"_gid_seq TO grp_qgis;"
-
- cur.execute(SQL_travaux_prevus)
- 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
- cur.execute(SQL_GRANT_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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- #**********ligne
- if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
- tablename = schema + "_travaux_prevus_ligne"
- 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
-
- SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_multilinestring
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_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();"
- 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_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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 "+schema+"."+tablename+"_gid_seq TO grp_qgis;"
-
- cur.execute(SQL_travaux_prevus)
- 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
- cur.execute(SQL_GRANT_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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- #**********point
- if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
- tablename = schema + "_travaux_prevus_point"
- 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
-
- SQL_travaux_prevus = "CREATE TABLE " + schema + "."+ tablename + champ_travaux_prevus_point
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_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();"
- SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();"
-
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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 "+schema+"."+tablename+"_gid_seq TO grp_qgis;"
-
- cur.execute(SQL_travaux_prevus)
- 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
- cur.execute(SQL_GRANT_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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- ### 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 :
- 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 :
- champ_vierge = champ_viergePoint
-
- if self.couche_vierge_ligne.isChecked() == 1 :
- champ_vierge = champ_viergeLigne
-
- if self.couche_vierge_polygone.isChecked() == 1 :
- champ_vierge = champ_viergePolygone
-
- SQL_vierge = "CREATE TABLE " + schema + "."+ tablename + champ_vierge
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (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_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();"
-
- cur.execute(SQL_vierge)
- cur.execute(SQL_pkey)
-
- if self.couche_vierge_point.isChecked() == 1 :
- cur.execute(SQL_trigger_coordonnees)
-
- 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 :
- cur.execute(SQL_trigger_area_m2)
- cur.execute(SQL_trigger_area_ha)
-
- 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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- else :
- con.commit()
con.close()
pass
\ No newline at end of file
diff --git a/CenRa_POSTGIS/postgis_editor.py b/CenRa_POSTGIS/postgis_editor.py
index 8661a5f6..9f238a19 100644
--- a/CenRa_POSTGIS/postgis_editor.py
+++ b/CenRa_POSTGIS/postgis_editor.py
@@ -21,6 +21,10 @@ from .tools.resources import (
resources_path,
login_base,
send_issues,
+ create_vierge,
+ create_contour,
+ create_travaux,
+ create_habita
)
from .issues import CenRa_Issues
@@ -102,355 +106,10 @@ class Postgis_Editor(QDialog, EDITOR_CLASS):
schema = self.schema.currentText()
- ### Creation de la table contour
- if self.couche_contour.isChecked(): # Verifie si la checkbox est cochee
- if self.annee_1.text() == 'aaaa' or self.annee_1.text() == '':
- tablename = schema + "_contour"
- 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
-
- cur.execute(SQL_contour)
- cur.execute(RETURNE)
- sequence_name = cur.fetchone()[0]
-
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (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_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();"
-
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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;"
-
- 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
- cur.execute(SQL_GRANT_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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- ### 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 :
- tablename = schema + "_habitat_" + self.annee_2.text()
-
- 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
-
- cur.execute(SQL_VEGETHAB)
- cur.execute(RETURNE)
- sequence_name = cur.fetchone()[0]
-
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename_1 + " ADD CONSTRAINT " + tablename_1 + "_pkey" + " PRIMARY KEY (gid)"
- SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename_1 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_1 + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();"
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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;"
-
- cur.execute(SQL_pkey)
- cur.execute(SQL_trigger_coordonnees)
- cur.execute(SQL_style)
- cur.execute(SQL_GRANT_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_1, geom)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- 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
-
- cur.execute(SQL_VEGETHAB)
- cur.execute(RETURNE)
- sequence_name = cur.fetchone()[0]
-
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename_2 + " ADD CONSTRAINT " + tablename_2 + "_pkey" + " PRIMARY KEY (gid)"
- SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();"
- SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();"
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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;"
-
- cur.execute(SQL_pkey)
- cur.execute(SQL_trigger_length_m)
- cur.execute(SQL_trigger_length_km)
- cur.execute(SQL_style)
- cur.execute(SQL_GRANT_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_2, geom)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- 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
-
- cur.execute(SQL_VEGETHAB)
- cur.execute(RETURNE)
- sequence_name = cur.fetchone()[0]
-
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename_3 + " ADD CONSTRAINT " + tablename_3 + "_pkey" + " PRIMARY KEY (gid)"
- SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();"
- SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();"
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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;"
-
- cur.execute(SQL_pkey)
- cur.execute(SQL_trigger_area_m2)
- cur.execute(SQL_trigger_area_ha)
- cur.execute(SQL_style)
- cur.execute(SQL_GRANT_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_3, geom)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- ### Creation de la table travaux prevus
- if self.couche_travaux_prevus.isChecked():
- #**********Poly
- if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
- tablename = schema + "_travaux_prevus_poly"
- 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
-
- cur.execute(SQL_travaux_prevus)
- cur.execute(RETURNE)
- sequence_name = cur.fetchone()[0]
-
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_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();"
- 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_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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;"
-
- 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
- cur.execute(SQL_GRANT_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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- #**********ligne
- if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
- tablename = schema + "_travaux_prevus_ligne"
- 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
-
- cur.execute(SQL_travaux_prevus)
- cur.execute(RETURNE)
- sequence_name = cur.fetchone()[0]
-
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_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();"
- 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_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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;"
-
- 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
- cur.execute(SQL_GRANT_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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- #**********point
- if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
- tablename = schema + "_travaux_prevus_point"
- 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
-
- cur.execute(SQL_travaux_prevus)
- cur.execute(RETURNE)
- sequence_name = cur.fetchone()[0]
-
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_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();"
- SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();"
-
- SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
- 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;"
-
- 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
- cur.execute(SQL_GRANT_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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- ### 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 :
- 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 :
- champ_vierge = champ_viergePoint
-
- if self.couche_vierge_ligne.isChecked() == 1 :
- champ_vierge = champ_viergeLigne
-
- 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
-
- cur.execute(SQL_vierge)
- cur.execute(RETURNE)
- sequence_name = cur.fetchone()[0]
-
- SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (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_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;"
-
- cur.execute(SQL_pkey)
- cur.execute(SQL_GRANT_TABLE)
-
- if self.couche_vierge_point.isChecked() == 1 :
- cur.execute(SQL_trigger_coordonnees)
-
- 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 :
- cur.execute(SQL_trigger_area_m2)
- cur.execute(SQL_trigger_area_ha)
-
- 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)
-
- layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
-
- else :
- con.commit()
+ 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
\ No newline at end of file
diff --git a/CenRa_POSTGIS/tools/resources.py b/CenRa_POSTGIS/tools/resources.py
index d81f82c0..2e811070 100644
--- a/CenRa_POSTGIS/tools/resources.py
+++ b/CenRa_POSTGIS/tools/resources.py
@@ -7,6 +7,8 @@ import base64
import psycopg2
import psycopg2.extras
from os.path import abspath, join, pardir, dirname
+from qgis.core import QgsDataSourceUri
+from .PythonSQL import *
from qgis.PyQt import uic
@@ -17,170 +19,519 @@ __revision__ = "$Format:%H$"
def plugin_path(*args):
- """Get the path to plugin root folder.
+ """Get the path to plugin root folder.
- :param args List of path elements e.g. ['img', 'logos', 'image.png']
- :type args: str
+ :param args List of path elements e.g. ['img', 'logos', 'image.png']
+ :type args: str
- :return: Absolute path to the plugin path.
- :rtype: str
- """
- path = dirname(dirname(__file__))
- path = abspath(abspath(join(path, pardir)))
- for item in args:
- path = abspath(join(path, item))
+ :return: Absolute path to the plugin path.
+ :rtype: str
+ """
+ path = dirname(dirname(__file__))
+ path = abspath(abspath(join(path, pardir)))
+ for item in args:
+ path = abspath(join(path, item))
- return path
+ return path
def plugin_name():
- """Return the plugin name according to metadata.txt.
+ """Return the plugin name according to metadata.txt.
- :return: The plugin name.
- :rtype: basestring
- """
- metadata = metadata_config()
- name = metadata["general"]["name"]
- return name
+ :return: The plugin name.
+ :rtype: basestring
+ """
+ metadata = metadata_config()
+ name = metadata["general"]["name"]
+ return name
def metadata_config() -> configparser:
- """Get the INI config parser for the metadata file.
+ """Get the INI config parser for the metadata file.
- :return: The config parser object.
- :rtype: ConfigParser
- """
- path = plugin_path("metadata.txt")
- config = configparser.ConfigParser()
- config.read(path, encoding='utf8')
- return config
+ :return: The config parser object.
+ :rtype: ConfigParser
+ """
+ path = plugin_path("metadata.txt")
+ config = configparser.ConfigParser()
+ config.read(path, encoding='utf8')
+ return config
def plugin_test_data_path(*args, copy=False):
- """Get the path to the plugin test data path.
+ """Get the path to the plugin test data path.
- :param args List of path elements e.g. ['img', 'logos', 'image.png']
- :type args: str
+ :param args List of path elements e.g. ['img', 'logos', 'image.png']
+ :type args: str
- :param copy: If the file must be copied into a temporary directory first.
- :type copy: bool
+ :param copy: If the file must be copied into a temporary directory first.
+ :type copy: bool
- :return: Absolute path to the resources folder.
- :rtype: str
- """
- path = abspath(abspath(join(plugin_path(), "test", "data")))
- for item in args:
- path = abspath(join(path, item))
+ :return: Absolute path to the resources folder.
+ :rtype: str
+ """
+ path = abspath(abspath(join(plugin_path(), "test", "data")))
+ for item in args:
+ path = abspath(join(path, item))
- if copy:
- temp = tempfile.mkdtemp()
- shutil.copy(path, temp)
- return join(temp, args[-1])
- else:
- return path
+ if copy:
+ temp = tempfile.mkdtemp()
+ shutil.copy(path, temp)
+ return join(temp, args[-1])
+ else:
+ return path
def resources_path(*args):
- """Get the path to our resources folder.
+ """Get the path to our resources folder.
- :param args List of path elements e.g. ['img', 'logos', 'image.png']
- :type args: str
+ :param args List of path elements e.g. ['img', 'logos', 'image.png']
+ :type args: str
- :return: Absolute path to the resources folder.
- :rtype: str
- """
- path = abspath(abspath(join(plugin_path(), "CenRa_POSTGIS\\tools")))
- for item in args:
- path = abspath(join(path, item))
- return path
+ :return: Absolute path to the resources folder.
+ :rtype: str
+ """
+ path = abspath(abspath(join(plugin_path(), "CenRa_POSTGIS\\tools")))
+ for item in args:
+ path = abspath(join(path, item))
+ return path
def load_ui(*args):
- """Get compile UI file.
+ """Get compile UI file.
- :param args List of path elements e.g. ['img', 'logos', 'image.png']
- :type args: str
+ :param args List of path elements e.g. ['img', 'logos', 'image.png']
+ :type args: str
- :return: Compiled UI file.
- """
- ui_class, _ = uic.loadUiType(resources_path("ui", *args))
+ :return: Compiled UI file.
+ """
+ ui_class, _ = uic.loadUiType(resources_path("ui", *args))
- return ui_class
+ return ui_class
def login_base(take=None):
- from CenRa_Metabase.resources.PythonSQL import host,port,dbname,password,os_user
- first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password)
- first_cur = first_conn.cursor(cursor_factory = psycopg2.extras.DictCursor)
- first_cur.execute("SELECT mdp_w, login_w FROM pg_catalog.pg_user t1, admin_sig.vm_users_sig t2 WHERE t2.oid = t1.usesysid AND (login_w = '" + os_user + "' OR login_w = '" + os_user + "')")
- res_ident = first_cur.fetchone()
- mdp = base64.b64decode(str(res_ident[0])).decode('utf-8')
- user = res_ident[1]
+ from .PythonSQL import host,port,dbname,password,os_user
+ first_conn = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=first_cnx password=" + password)
+ first_cur = first_conn.cursor(cursor_factory = psycopg2.extras.DictCursor)
+ first_cur.execute("SELECT mdp_w, login_w FROM pg_catalog.pg_user t1, admin_sig.vm_users_sig t2 WHERE t2.oid = t1.usesysid AND (login_w = '" + os_user + "' OR login_w = '" + os_user + "')")
+ res_ident = first_cur.fetchone()
+ mdp = base64.b64decode(str(res_ident[0])).decode('utf-8')
+ user = res_ident[1]
- con = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=" + user + " password=" + mdp)
+ con = psycopg2.connect("host=" + host + " port=" + port + " dbname="+dbname+" user=" + user + " password=" + mdp)
- cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor)
- first_conn.close()
+ cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor)
+ first_conn.close()
- if take:
- return cur,con
- else:
- return cur
+ if take:
+ return cur,con
+ else:
+ return cur
def send_issues(url,titre,body,labels):
- import requests
- import json
- import os
- import qgis
+ import requests
+ import json
+ import os
+ import qgis
- usr = os.environ['USERNAME']
- token = '9d0a4e0bea561710e0728f161f7edf4e5201e112'
- url=url+'?token='+token
+ usr = os.environ['USERNAME']
+ token = '9d0a4e0bea561710e0728f161f7edf4e5201e112'
+ url=url+'?token='+token
- headers = {'Authorization': 'token ' + token,'accept': 'application/json','Content-Type': 'application/json'}
+ 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:
- binar = False
- r = ''
- if binar:
- r = requests.post(url, data=json.dumps(payload), headers=headers)
- return r
+ payload = {'title': titre, 'body': body, 'labels': labels}
+ try:
+ urllib.request.urlopen('https://google.com')
+ binar = True
+ except:
+ 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
+ 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 = 'https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/releases/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/releases/plugins.xml'
# print(URL)
- version = qgis.utils.pluginMetadata(NAME,'version')
- len_version = len(version)
- try:
- urllib.request.urlopen('https://google.com')
- binar = True
- except:
- 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('',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:
- print("error gitea version ssl")
- else:
- iface.messageBar().pushMessage("WiFi :", "Pas de connection à internet.", level=Qgis.Warning, duration=30)
+ version = qgis.utils.pluginMetadata(NAME,'version')
+ len_version = len(version)
+ try:
+ urllib.request.urlopen('https://google.com')
+ binar = True
+ except:
+ 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('',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:
+ 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 = ''
- devmaj = devmaj+qgis.utils.pluginMetadata(NAME,'changelog')
- return devmaj
+ import qgis
+ devmaj = ''
+ 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
+ if self.annee_1.text() == 'aaaa' or self.annee_1.text() == '':
+ tablename = schema + "_contour"
+ 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
+
+ cur.execute(SQL_contour)
+ 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_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_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();"
+
+ SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
+ 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;"
+
+ 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
+ cur.execute(SQL_GRANT_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)
+
+ 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
+ if self.couche_travaux_prevus.isChecked():
+ #**********Poly
+ if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
+ tablename = schema + "_travaux_prevus_poly"
+ 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
+
+ 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();"
+ 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_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
+ 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;"
+
+ 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
+ cur.execute(SQL_GRANT_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)
+
+ layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
+
+ #**********ligne
+ if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
+ tablename = schema + "_travaux_prevus_ligne"
+ 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
+
+ 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();"
+ 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_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
+ 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;"
+
+ 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
+ cur.execute(SQL_GRANT_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)
+
+ layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
+
+ #**********point
+ if self.annee_5.text() == 'aaaa' or self.annee_5.text() == '':
+ tablename = schema + "_travaux_prevus_point"
+ 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
+
+ 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();"
+ SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();"
+
+ SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
+ 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;"
+
+ 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
+ cur.execute(SQL_GRANT_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)
+
+ layer = 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
+ if self.couche_habitat.isChecked():
+ if self.annee_2.text() == 'aaaa' or self.annee_2.text() == '':
+ tablename = schema + "_habitat"
+ else :
+ tablename = schema + "_habitat_" + self.annee_2.text()
+
+ tablename_1=tablename+"_points"
+ RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename_1[len(schema):]+"','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
+
+ cur.execute(SQL_VEGETHAB)
+ cur.execute(RETURNE)
+ sequence_name = cur.fetchone()[0]
+
+ SQL_pkey = "ALTER TABLE " + schema + "." + tablename_1 + " ADD CONSTRAINT " + tablename_1 + "_pkey" + " PRIMARY KEY (gid)"
+ SQL_trigger_coordonnees = "CREATE TRIGGER coordonnees" + tablename_1 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_1 + " FOR EACH ROW EXECUTE PROCEDURE ref.coordonnees();"
+ SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
+ 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;"
+
+ cur.execute(SQL_pkey)
+ cur.execute(SQL_trigger_coordonnees)
+ cur.execute(SQL_style)
+ cur.execute(SQL_GRANT_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_1, geom)
+
+ layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
+
+ 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
+
+ cur.execute(SQL_VEGETHAB)
+ cur.execute(RETURNE)
+ sequence_name = cur.fetchone()[0]
+
+ SQL_pkey = "ALTER TABLE " + schema + "." + tablename_2 + " ADD CONSTRAINT " + tablename_2[len(schema):] + "_pkey" + " PRIMARY KEY (gid)"
+ SQL_trigger_length_m = "CREATE TRIGGER length_m" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_m();"
+ SQL_trigger_length_km = "CREATE TRIGGER length_km" + tablename_2 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_2 + " FOR EACH ROW EXECUTE PROCEDURE ref.length_km();"
+ SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
+ 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;"
+
+ cur.execute(SQL_pkey)
+ cur.execute(SQL_trigger_length_m)
+ cur.execute(SQL_trigger_length_km)
+ cur.execute(SQL_style)
+ cur.execute(SQL_GRANT_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_2, geom)
+
+ layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
+
+ 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
+
+ cur.execute(SQL_VEGETHAB)
+ cur.execute(RETURNE)
+ sequence_name = cur.fetchone()[0]
+
+ SQL_pkey = "ALTER TABLE " + schema + "." + tablename_3 + " ADD CONSTRAINT " + tablename_3[len(schema):] + "_pkey" + " PRIMARY KEY (gid)"
+ SQL_trigger_area_m2 = "CREATE TRIGGER area_m2" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_m2();"
+ SQL_trigger_area_ha = "CREATE TRIGGER area_ha" + tablename_3 + " BEFORE INSERT OR UPDATE ON " + schema + "." + tablename_3 + " FOR EACH ROW EXECUTE PROCEDURE ref.area_ha();"
+ SQL_style = """INSERT INTO layer_styles (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, stylename, styleqml, stylesld, useasdefault, "owner", ui, update_time)
+ 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;"
+
+ cur.execute(SQL_pkey)
+ cur.execute(SQL_trigger_area_m2)
+ cur.execute(SQL_trigger_area_ha)
+ cur.execute(SQL_style)
+ cur.execute(SQL_GRANT_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_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
+ 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 :
+ 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 :
+ champ_vierge = champ_viergePoint
+
+ if self.couche_vierge_ligne.isChecked() == 1 :
+ champ_vierge = champ_viergeLigne
+
+ 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
+
+ cur.execute(SQL_vierge)
+ 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_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_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;"
+
+ cur.execute(SQL_pkey)
+ cur.execute(SQL_GRANT_TABLE)
+
+ if self.couche_vierge_point.isChecked() == 1 :
+ cur.execute(SQL_trigger_coordonnees)
+
+ 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 :
+ cur.execute(SQL_trigger_area_m2)
+ cur.execute(SQL_trigger_area_ha)
+
+ 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)
+
+ layer = self.iface.addVectorLayer(uri.uri(), tablename_qgis, "postgres")
diff --git a/plugins.xml b/plugins.xml
index b5c9690e..42a6f3d5 100644
--- a/plugins.xml
+++ b/plugins.xml
@@ -1,8 +1,8 @@
-
+
- 2.3
+ 2.4
3.16
https://plateformesig.cenra-outils.org/
CenRa_POSTGIS.zip
@@ -11,7 +11,7 @@
https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_POSTGIS.zip
CEN-Rhone-Alpes
2024-02-06
- 2025-01-22
+ 2025-01-23
False
False
cenra,postgis