From de1c84bf6d511f86ffd8f6b724f82b825fb9a9ce Mon Sep 17 00:00:00 2001 From: Tom LAVEILLE Date: Fri, 2 Aug 2024 10:46:19 +0200 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"CenRa=5FSICEN"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CenRa_SICEN/sicen.png | Bin 0 -> 3465 bytes CenRa_SICEN/sicen.py | 921 +++++++++++++++++++++++++++++++++++ CenRa_SICEN/sicen_export.png | Bin 0 -> 4427 bytes CenRa_SICEN/sicendialog.py | 37 ++ CenRa_SICEN/ui_sicen.py | 756 ++++++++++++++++++++++++++++ 5 files changed, 1714 insertions(+) create mode 100644 CenRa_SICEN/sicen.png create mode 100644 CenRa_SICEN/sicen.py create mode 100644 CenRa_SICEN/sicen_export.png create mode 100644 CenRa_SICEN/sicendialog.py create mode 100644 CenRa_SICEN/ui_sicen.py diff --git a/CenRa_SICEN/sicen.png b/CenRa_SICEN/sicen.png new file mode 100644 index 0000000000000000000000000000000000000000..d9defb37dd3565864c8932d7d2de65120ece272c GIT binary patch literal 3465 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 literal 0 HcmV?d00001 diff --git a/CenRa_SICEN/sicen.py b/CenRa_SICEN/sicen.py new file mode 100644 index 00000000..1a5a6b86 --- /dev/null +++ b/CenRa_SICEN/sicen.py @@ -0,0 +1,921 @@ +# -*- coding: utf-8 -*- +""" +/*************************************************************************** + SICEN + A QGIS plugin + Filtre sur données SICEN + ------------------- + begin : 2014-10-17 + copyright : (C) 2014 by Guillaume COSTES (CENRA) + email : guillaume.costes@espaces-naturels.fr + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ +""" +"""from __future__ import absolute_import +# Import the PyQt and QGIS libraries +from builtins import str +from builtins import object +from PyQt4.QtCore import * +from PyQt4.QtGui import * +from qgis.core import * +from qgis.gui import * +from qgis.utils import iface""" + +from builtins import str +from builtins import object +import os +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from qgis.PyQt import uic +from qgis.core import * +from qgis.core import QgsDataSourceUri, QgsWkbTypes, QgsLayerTreeGroup, QgsLayerTreeLayer +from qgis.PyQt.QtGui import QFont +from qgis.PyQt.QtWidgets import QMenu, QAction, QDialog, QDialogButtonBox, QLabel, QApplication, QTabWidget, QWidget, QGroupBox, QGridLayout, QComboBox, QCheckBox, QCalendarWidget, QToolBox, QFrame, QLineEdit, QSizePolicy, QFileDialog #Modifié + + +# Initialize Qt resources from file resources.py +from . import resources_rc +# Import the code for the dialog +from .sicendialog import SICENDialog +from .tools.PythonSQL import * +from .tools.resources import maj_verif +import os.path +import qgis +import datetime +import csv + +import psycopg2 +import psycopg2.extras +import base64 +#import socket +import os +#import sys + +class SICEN(object): + + def __init__(self, iface): + # Save reference to the QGIS interface + self.iface = iface + # initialize plugin directory + self.plugin_dir = os.path.dirname(__file__) + # initialize locale + locale = QSettings().value("locale/userLocale")[0:2] + localePath = os.path.join(self.plugin_dir, 'i18n', 'sicen_{}.qm'.format(locale)) + + if os.path.exists(localePath): + self.translator = QTranslator() + self.translator.load(localePath) + + if qVersion() > '4.3.3': + QCoreApplication.installTranslator(self.translator) + + # Create the dialog (after translation) and keep reference + self.dlg = SICENDialog() + maj_verif('CenRa_SICEN') + + def initGui(self): + self.toolBar = self.iface.addToolBar("SICEN") + self.toolBar.setObjectName("SICEN") + + ## Create action that will start plugin configuration + self.action = QAction( + QIcon(":/plugins/sicen/sicen.png"), + u"Ouverture des données SICEN", self.iface.mainWindow()) + # connect the action to the run method + self.action.triggered.connect(self.ouverture) + + # Add toolbar button and menu item + self.toolBar.addAction(self.action) + self.iface.addPluginToMenu(u"SICEN", self.action) + + ## Create action that will start plugin configuration + self.action = QAction( + QIcon(":/plugins/sicen/sicen_export.png"), + u"Export liste d'espèces", self.iface.mainWindow()) + # connect the action to the run method + self.action.triggered.connect(self.export) + + # Add toolbar button and menu item + self.toolBar.addAction(self.action) + self.iface.addPluginToMenu(u"SICEN", self.action) + + self.menu = QMenu() + self.menu.setTitle( QCoreApplication.translate( "SICEN","&SICEN" ) ) + + self.sicen_ouverture = QAction( QIcon(":/plugins/SICEN/sicen.png"), QCoreApplication.translate("SICEN", u"Ouverture des données SICEN" ), self.iface.mainWindow() ) + self.sicen_export = QAction( QIcon(":/plugins/SICEN/sicen_export.png"), QCoreApplication.translate("SICEN", u"Export liste d'espèces" ), self.iface.mainWindow() ) + + self.menu.addActions( [self.sicen_ouverture, self.sicen_export] ) + + menu_bar = self.iface.mainWindow().menuBar() + actions = menu_bar.actions() + lastAction = actions[ len( actions ) - 1 ] + menu_bar.insertMenu( lastAction, self.menu ) + + self.sicen_ouverture.triggered.connect(self.ouverture) + self.sicen_export.triggered.connect(self.export) + + def unload(self): + # Remove the plugin menu item and icon + self.iface.removePluginMenu(u"&SICEN", self.action) + self.iface.removeToolBarIcon(self.action) + + # run method that performs all the real work + def ouverture(self): + + 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) + cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_conn.close() + + ## Creation des listes deroulantes + # Listing de valeur des champs + SQL_observateur = u"""SELECT DISTINCT nom || '_' || prenom as nom FROM md.personne ORDER BY nom""" + SQL_nom_com = u"""SELECT DISTINCT nom FROM saisie.commune ORDER BY nom""" + SQL_nom_vern = u"""SELECT DISTINCT nom_vern FROM _agregation_ra.observations_table ORDER BY nom_vern""" + SQL_nom_complet = u"""SELECT DISTINCT nom_complet FROM _agregation_ra.observations_table ORDER BY nom_complet""" + SQL_ordre = u"""SELECT DISTINCT ordre FROM _agregation_ra.observations_table ORDER BY ordre""" + + # Generation des listes + cur.execute(SQL_observateur) + list_observateur = cur.fetchall() + + cur.execute(SQL_nom_com) + list_nom_com = cur.fetchall() + + cur.execute(SQL_nom_vern) + list_nom_vern = cur.fetchall() + + cur.execute(SQL_nom_complet) + list_nom_complet = cur.fetchall() + + cur.execute(SQL_ordre) + list_ordre = cur.fetchall() + + con.close() + + + # Ajout des items dans les combobox + self.dlg.observateur_1.clear() + i = 0 + while i < len(list_observateur): + self.dlg.observateur_1.addItems(list_observateur[i]) + i=i+1 + self.dlg.observateur_1.setCurrentIndex(-1) # Pour ne pas commencer la liste au premier item + + self.dlg.observateur_2.clear() + i = 0 + while i < len(list_observateur): + self.dlg.observateur_2.addItems(list_observateur[i]) + i=i+1 + self.dlg.observateur_2.setCurrentIndex(-1) + + self.dlg.observateur_3.clear() + i = 0 + while i < len(list_observateur): + self.dlg.observateur_3.addItems(list_observateur[i]) + i=i+1 + self.dlg.observateur_3.setCurrentIndex(-1) + + self.dlg.observateur_4.clear() + i = 0 + while i < len(list_observateur): + self.dlg.observateur_4.addItems(list_observateur[i]) + i=i+1 + self.dlg.observateur_4.setCurrentIndex(-1) + + self.dlg.nom_com_1.clear() + i = 0 + while i < len(list_nom_com): + self.dlg.nom_com_1.addItems(list_nom_com[i]) + i=i+1 + self.dlg.nom_com_1.setCurrentIndex(-1) + + self.dlg.nom_com_2.clear() + i = 0 + while i < len(list_nom_com): + self.dlg.nom_com_2.addItems(list_nom_com[i]) + i=i+1 + self.dlg.nom_com_2.setCurrentIndex(-1) + + self.dlg.nom_vern.clear() + i = 0 + while i < len(list_nom_vern): + self.dlg.nom_vern.addItems(list_nom_vern[i]) + i=i+1 + self.dlg.nom_vern.setCurrentIndex(-1) + + self.dlg.nom_complet.clear() + i = 0 + while i < len(list_nom_complet): + self.dlg.nom_complet.addItems(list_nom_complet[i]) + i=i+1 + self.dlg.nom_complet.setCurrentIndex(-1) + + self.dlg.ordre.clear() + i = 0 + while i < len(list_ordre): + self.dlg.ordre.addItems(list_ordre[i]) + i=i+1 + self.dlg.ordre.setCurrentIndex(-1) + + # show the dialog + self.dlg.show() + # Run the dialog event loop + result = self.dlg.exec_() + # See if OK was pressed + if result == 1: + + 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) + cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_conn.close() + + # Requete filtre observateur + if self.dlg.observateur_1.currentIndex() != -1 : + sql_obs1 = """ "observateur" LIKE '%""" + self.dlg.observateur_1.currentText() + "%' " + else : + sql_obs1 = '' + + if self.dlg.observateur_2.currentIndex() != -1 : + sql_obs2 = """ "observateur" LIKE '%""" + self.dlg.observateur_2.currentText() + "%' " + else : + sql_obs2 = '' + + if self.dlg.observateur_3.currentIndex() != -1 : + sql_obs3 = """ "observateur" LIKE '%""" + self.dlg.observateur_3.currentText() + "%' " + else : + sql_obs3 = '' + + if self.dlg.observateur_4.currentIndex() != -1 : + sql_obs4 = """ "observateur" LIKE '%""" + self.dlg.observateur_4.currentText() + "%' " + else : + sql_obs4 = '' + + reqwhere_obs = sql_obs1 + 'OR' + sql_obs2 + 'OR' + sql_obs3 + 'OR' + sql_obs4 + + while reqwhere_obs[-2:] == 'OR' : + reqwhere_obs = reqwhere_obs[:-2] + while reqwhere_obs[:2] == 'OR' : + reqwhere_obs = reqwhere_obs[2:] + + # Requete communes + # Connexion a la BD + #con = psycopg2.connect("dbname="+ dbname + " user=" + user + " host=" + host + " password=" + password + " port=" + port) + #cur = con.cursor() + + if self.dlg.nom_com_1.currentIndex() != -1 : + nom_com = self.dlg.nom_com_1.currentText() + SQL_code_INSEE = u"""SELECT DISTINCT code_insee FROM saisie.commune WHERE nom = '""" + nom_com + "'" + cur.execute(SQL_code_INSEE) + list_code_INSEE = cur.fetchall() + code_INSEE = list_code_INSEE[0][0] + + sql_insee_1 = """ "code_insee" = '""" + code_INSEE + "' " + else : + sql_insee_1 = '' + + if self.dlg.nom_com_2.currentIndex() != -1 : + nom_com = self.dlg.nom_com_2.currentText() + SQL_code_INSEE = u"""SELECT DISTINCT code_insee FROM saisie.commune WHERE nom = '""" + nom_com + "'" + cur.execute(SQL_code_INSEE) + list_code_INSEE = cur.fetchall() + code_INSEE = list_code_INSEE[0][0] + + sql_insee_2 = """ "code_insee" = '""" + code_INSEE + "' " + else : + sql_insee_2 = '' + + reqwhere_insee = sql_insee_1 + 'OR' + sql_insee_2 + + while reqwhere_insee[-2:] == 'OR' : + reqwhere_insee = reqwhere_insee[:-2] + while reqwhere_insee[:2] == 'OR' : + reqwhere_insee = reqwhere_insee[2:] + + con.close() + + # Requete date + today = datetime.datetime.now().strftime("%Y-%m-%d") + date_min = self.dlg.date_min.selectedDate().toString("yyyy-MM-dd") + date_max = self.dlg.date_max.selectedDate().toString("yyyy-MM-dd") + + if date_min != today : + sql_date_min = """ "date_obs" >= '""" + date_min + "' " + else : + sql_date_min = '' + + if date_max != today : + sql_date_max = """ "date_obs" <= '""" + date_max + "' " + else : + sql_date_max = '' + + reqwhere_date = sql_date_min + 'AND' + sql_date_max + + while reqwhere_obs[-3:] == 'AND' : + reqwhere_obs = reqwhere_obs[:-3] + while reqwhere_obs[:3] == 'AND' : + reqwhere_obs = reqwhere_obs[3:] + + # Requete regne + if self.dlg.Animalia.isChecked() == 1 : + sql_Animalia = """"regne" = 'Animalia'""" + else : + sql_Animalia = '' + + if self.dlg.Plantae.isChecked() == 1 : + sql_Plantae = """"regne" = 'Plantae'""" + else : + sql_Plantae = '' + + reqwhere_regne = sql_Animalia + 'OR' + sql_Plantae + + while reqwhere_regne[-2:] == 'OR' : + reqwhere_regne = reqwhere_regne[:-2] + while reqwhere_regne[:2] == 'OR' : + reqwhere_regne = reqwhere_regne[2:] + + # Requete ordre + if self.dlg.ordre.currentIndex() != -1 : + reqwhere_ordre = """"ordre" = '""" + self.dlg.ordre.currentText() + "'" + else : + reqwhere_ordre = '' + + # Requete sp + if self.dlg.nom_vern.currentIndex() != -1 : + sql_nom_vern = """"nom_vern" = '""" + self.dlg.nom_vern.currentText() + "'" + else : + sql_nom_vern = '' + + if self.dlg.nom_complet.currentIndex() != -1 : + sql_nom_complet = """"nom_complet" = '""" + self.dlg.nom_complet.currentText() + "'" + else : + sql_nom_complet = '' + + reqwhere_sp = sql_nom_vern + 'OR' + sql_nom_complet + + while reqwhere_sp[-2:] == 'OR' : + reqwhere_sp = reqwhere_sp[:-2] + while reqwhere_sp[:2] == 'OR' : + reqwhere_sp = reqwhere_sp[2:] + + # Requete filtre patrimonialite + if self.dlg.LRD_01.isChecked() == 1 : + sql_lrd01 = """ lrd01 IN ('VU','EN','RE','CR') """ + else : + sql_lrd01 = '' + + if self.dlg.LRD_07.isChecked() == 1 : + sql_lrd07 = """ lrd07 IN ('VU','EN','RE','CR') """ + else : + sql_lrd07 = '' + + if self.dlg.LRD_26.isChecked() == 1 : + sql_lrd26 = """ lrd26 IN ('VU','EN','RE','CR') """ + else : + sql_lrd26 = '' + + if self.dlg.LRD_38.isChecked() == 1 : + sql_lrd38 = """ lrd38 IN ('VU','EN','RE','CR', 'AS-1', 'AS-2', 'AS-3') """ + else : + sql_lrd38 = '' + + if self.dlg.LRD_42.isChecked() == 1 : + sql_lrd42 = """ lrd42 IN ('VU','EN','RE','CR') """ + else : + sql_lrd42 = '' + + if self.dlg.LRD_69.isChecked() == 1 : + sql_lrd69 = """ lrd69 IN ('VU','EN','RE','CR') """ + else : + sql_lrd69 = '' + + if self.dlg.LRD_73.isChecked() == 1 : + sql_lrd73 = """ lrd73 IN ('VU','EN','RE','CR') """ + else : + sql_lrd73 = '' + + if self.dlg.LRD_74.isChecked() == 1 : + sql_lrd74 = """ lrd74 IN ('VU','EN','RE','CR') """ + else : + sql_lrd74 = '' + + if self.dlg.LRR_Flore.isChecked() == 1 : + sql_LRR_Flore = u""" "TAXO_GROUPE" IN ('Plantes') AND (lrr like '%CR%' OR lrr like '%EN%' OR lrr like '%EW%' OR lrr like '%RE%' OR lrr like '%VU%')""" + else : + sql_LRR_Flore = '' + + if self.dlg.LRR_Oiseaux.isChecked() == 1 : + sql_LRR_Oiseaux = u""" "TAXO_GROUPE" = 'Oiseaux' AND (lrr like '%RE %' OR lrr like '%CR %' OR lrr like '%EN %' OR lrr like '%VU %') """ + else : + sql_LRR_Oiseaux = '' + + if self.dlg.LRR_Autre.isChecked() == 1 : + sql_LRR_Autre = u""" (lrr like '%RE %' OR lrr like '%CR %' OR lrr like '%EN %' OR lrr like '%VU %') AND "TAXO_GROUPE" NOT IN ('Oiseaux', 'Plantes') """ + else : + sql_LRR_Autre = '' + + if self.dlg.LRN_Flore.isChecked() == 1 : + sql_LRN_Flore = u""" "TAXO_GROUPE" ilike 'plantes' AND (lrr like '%CR%' OR lrr like '%EN%' OR lrr like '%EW%' OR lrr like '%RE%' OR lrr like '%VU%') """ + else : + sql_LRN_Flore = '' + + if self.dlg.LRN_Oiseaux.isChecked() == 1 : + sql_LRN_Oiseaux = u""" "TAXO_GROUPE" = 'Oiseaux' AND (lrn like '%RE %' OR lrn like '%CR %' OR lrn like '%EN %' OR lrn like '%VU %') """ + else : + sql_LRN_Oiseaux = '' + + if self.dlg.LRN_Ortho.isChecked() == 1 : + sql_LRN_Ortho = u""" "TAXO_GROUPE" ilike 'orthoptères' AND (lrn like '1%' OR lrn like '2%' OR lrn like '3%') """ + else : + sql_LRN_Ortho = '' + + if self.dlg.LRN_Autre.isChecked() == 1 : + sql_LRN_Autre = u""" (lrr like '%CR%' OR lrr like '%EN%' OR lrr like '%EW%' OR lrr like '%RE%' OR lrr like '%VU%') AND "TAXO_GROUPE" NOT IN ('Oiseaux', 'Plantes', 'Orthoptères') """ + else : + sql_LRN_Autre = '' + + if self.dlg.LRE.isChecked() == 1 : + sql_lre = """ lre IN ('VU','EN','RE','CR', 'EW', 'EX') """ + else : + sql_lre = '' + + if self.dlg.UICN.isChecked() == 1 : + sql_UICN = """ lrm IN ('VU','EN','RE','CR', 'EW', 'EX') """ + else : + sql_UICN = '' + + + if self.dlg.PATRIMONIALITE.isChecked() == 1 : + sql_patrimonialite = """"patrimonialite" IS NOT NULL """ + else : + sql_patrimonialite = '' + + if self.dlg.PATRI01.isChecked() == 1 : + sql_patri01 = """"patri01" IS NOT NULL """ + else : + sql_patri01 = '' + + if self.dlg.PATRI07.isChecked() == 1 : + sql_patri07 = """"patri07" IS NOT NULL """ + else : + sql_patri07 = '' + + if self.dlg.PATRI26.isChecked() == 1 : + sql_patri26 = """"patri26" IS NOT NULL """ + else : + sql_patri26 = '' + + if self.dlg.PATRI38.isChecked() == 1 : + sql_patri38 = """"patri38" IS NOT NULL """ + else : + sql_patri38 = '' + + if self.dlg.PATRI42.isChecked() == 1 : + sql_patri42 = """"patri42" IS NOT NULL """ + else : + sql_patri42 = '' + + if self.dlg.PATRI69.isChecked() == 1 : + sql_patri69 = """"patri69" IS NOT NULL """ + else : + sql_patri69 = '' + + if self.dlg.PATRI73.isChecked() == 1 : + sql_patri73 = """"patri73" IS NOT NULL """ + else : + sql_patri73 = '' + + if self.dlg.PATRI74.isChecked() == 1 : + sql_patri74 = """"patri74" IS NOT NULL """ + else : + sql_patri74 = '' + + + if self.dlg.ZNIEFF.isChecked() == 1 : + sql_znieff = """"znieff" IS NOT NULL """ + else : + sql_znieff = '' + + if self.dlg.DH_AnnII.isChecked() == 1 : + sql_dh_an2 = """"dh_an2" IS NOT NULL """ + else : + sql_dh_an2 = '' + + if self.dlg.PD_38.isChecked() == 1 : + sql_pd38 = """"pd38" IS NOT NULL """ + else : + sql_pd38 = '' + + if self.dlg.PD_42.isChecked() == 1 : + sql_pd42 = """"pd42" IS NOT NULL """ + else : + sql_pd42 = '' + + if self.dlg.PN.isChecked() == 1 : + sql_pn = """"pn" IS NOT NULL """ + else : + sql_pn = '' + + if self.dlg.PR.isChecked() == 1 : + sql_pr = """"pr" IS NOT NULL """ + else : + sql_pr = '' + + reqwhere_pat = sql_lrd01 + 'OR' + sql_lrd07 + 'OR' + sql_lrd26 + 'OR' + sql_lrd38 + 'OR' + sql_lrd42 + 'OR' + sql_lrd69 + 'OR' + sql_lrd73 + 'OR' + sql_lrd74 + 'OR' + sql_lre + 'OR' + sql_LRN_Flore + 'OR' + sql_LRN_Oiseaux + 'OR' + sql_LRN_Ortho + 'OR' + sql_LRN_Autre + 'OR' + sql_LRR_Flore + 'OR' + sql_LRR_Oiseaux + 'OR' + sql_LRR_Autre + 'OR' + sql_UICN + 'OR' + sql_pd38 + 'OR' + sql_pd42 + 'OR' + sql_pn + 'OR' + sql_pr + 'OR' + sql_dh_an2 + 'OR' + sql_patri01 + 'OR' + sql_patri07 + 'OR' + sql_patri26 + 'OR' + sql_patri38 + 'OR' + sql_patri42 + 'OR' + sql_patri69 + 'OR' + sql_patri73 + 'OR' + sql_patri74 + 'OR' + sql_patrimonialite + + while reqwhere_pat.find('OROR') != -1 : + reqwhere_pat = reqwhere_pat.replace('OROR','OR') + while reqwhere_pat[-2:] == 'OR' : + reqwhere_pat = reqwhere_pat[:-2] + while reqwhere_pat[:2] == 'OR' : + reqwhere_pat = reqwhere_pat[2:] + + # Requete geom + if self.dlg.bouton_geom.isChecked() == 1 : + + 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) + + else : + selection = layer.selectedFeatures() + if layer.selectedFeatureCount() == 1 : + for feature in selection: + geom = feature.geometry() + poly = geom.asWkt() + + buffer = self.dlg.buffer.text() + reqwhere_geom = " ST_intersects(geometrie,ST_Buffer(ST_geomFromText('" + poly + "',2154), " + buffer + " ))" + + # Requete finale + reqwhere_final = '(' + reqwhere_obs + ')' + 'AND' + reqwhere_insee + 'AND' + reqwhere_ordre + 'AND' + reqwhere_sp + 'AND' + '(' + reqwhere_pat + ')' + 'AND' + reqwhere_regne + 'AND' + reqwhere_date + 'AND' + reqwhere_geom + + # Nettoyage de la requete finale + while reqwhere_final.find('ANDAND') != -1 : + reqwhere_final = reqwhere_final.replace('ANDAND','AND') + while reqwhere_final.find('AND()AND') != -1 : + reqwhere_final = reqwhere_final.replace('AND()AND','AND') + while reqwhere_final[-3:] == 'AND' : + reqwhere_final = reqwhere_final[:-3] + while reqwhere_final[:5] == '()AND' : + reqwhere_final = reqwhere_final[5:] + while reqwhere_final[-5:] == 'AND()' : + reqwhere_final = reqwhere_final[:-5] + while reqwhere_final[:3] == 'AND' : + reqwhere_final = reqwhere_final[3:] + + ## Affichage des tables + table_name = 'observations' + + uri = QgsDataSourceUri() + uri.setConnection(host ,port ,dbname ,user ,mdp) + + if self.dlg.centroide.isChecked() == 1 : + ### Centroide + if reqwhere_final.find('()') != -1 : + reqwhere_final = '' + uri.setDataSource("_agregation_ra", "observations_centroide", "geometrie", reqwhere_final, "gid") + layer = self.iface.addVectorLayer(uri.uri(), table_name + '_centroides', "postgres") + + else : + + 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) + cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_conn.close() + + # Creation group de couches + #i = qgis.utils.iface + #legende = i.legendInterface() + legende = QgsProject.instance().layerTreeRoot() + #nomgroupe = 'Observations' + #groupe = legende.addGroup(nomgroupe,False) + groupe = legende.insertGroup(1, "Observations") + groupe = legende.findGroup("Observations") + + # Récupération de la liste de groupes + #toc = iface.layerTreeView() + #toc = qgis.utils.iface.legendInterface() + #groups = toc. + #groups = toc.groups() + #index = groups.index(nomgroupe) + index = 1 + + ### Polygone + reqwhere_final_poly = '(' + reqwhere_final + " AND GeometryType(geometrie) LIKE '%POLYGON%'" + ')' + if reqwhere_final_poly.find('()') != -1 : + reqwhere_final_poly = "(GeometryType(geometrie) LIKE '%POLYGON%')" + + SQL_count_poly = u"""SELECT DISTINCT count(gid) AS count FROM _agregation_ra.observations_table WHERE """ + reqwhere_final_poly + cur.execute(SQL_count_poly) + list_count_poly = cur.fetchall() + count_poly = list_count_poly[0][0] + + if count_poly != 0: + uri.setDataSource("_agregation_ra", "observations_table", "geometrie", reqwhere_final_poly, "gid") + #layer_poly = self.iface.addVectorLayer(uri.uri(), table_name + '_poly', "postgres") + layer_poly = QgsVectorLayer(uri.uri(), table_name + '_poly', "postgres") + QgsProject.instance().addMapLayer(layer_poly, False) + #legende.moveLayer(layer_poly,index) + #groupe.addLayer(layer_poly) + groupe.insertChildNode(0, QgsLayerTreeLayer(layer_poly)) + + ### Point + reqwhere_final_point = '(' + reqwhere_final + " AND GeometryType(geometrie) LIKE '%POINT%'" + ')' + if reqwhere_final_point.find('()') != -1 : + reqwhere_final_point = "(GeometryType(geometrie) LIKE '%POINT%')" + + SQL_count_point = u"""SELECT DISTINCT count(gid) AS count FROM _agregation_ra.observations_table WHERE """ + reqwhere_final_point + cur.execute(SQL_count_point) + list_count_point = cur.fetchall() + count_point = list_count_point[0][0] + + if count_point != 0: + uri.setDataSource("_agregation_ra", "observations_table", "geometrie", reqwhere_final_point, "gid") + #layer_point = self.iface.addVectorLayer(uri.uri(), table_name + '_point', "postgres") + layer_point = QgsVectorLayer(uri.uri(), table_name + '_point', "postgres") + QgsProject.instance().addMapLayer(layer_point, False) + #legende.moveLayer(layer_point,index) + #groupe.addLayer(layer_point) + groupe.insertChildNode(0, QgsLayerTreeLayer(layer_point)) + + ### Ligne + reqwhere_final_ligne = '(' + reqwhere_final + " AND GeometryType(geometrie) LIKE '%LINE%'" + ')' + if reqwhere_final_ligne.find('()') != -1 : + reqwhere_final_ligne = "(GeometryType(geometrie) LIKE '%LINE%')" + + SQL_count_ligne = u"""SELECT DISTINCT count(gid) AS count FROM _agregation_ra.observations_table WHERE """ + reqwhere_final_ligne + cur.execute(SQL_count_ligne) + list_count_ligne = cur.fetchall() + count_ligne = list_count_ligne[0][0] + + if count_ligne != 0: + uri.setDataSource("_agregation_ra", "observations_table", "geometrie", reqwhere_final_ligne, "gid") + #layer_ligne = self.iface.addVectorLayer(uri.uri(), table_name + '_ligne', "postgres") + layer_ligne = QgsVectorLayer(uri.uri(), table_name + '_ligne', "postgres") + QgsProject.instance().addMapLayer(layer_ligne, False) + #legende.moveLayer(layer_ligne,index) + #groupe.addLayer(layer_ligne) + groupe.insertChildNode(0, QgsLayerTreeLayer(layer_ligne)) + + # ajout des couches dans le groupe Observations + #legende.setGroupExpanded (index, True) + + #self.iface.messageBar().pushMessage(u"Extraction réussie : ", u" Pensez à renommer vos couches pour plus de lisibilité.", level=QgsMessageBar.INFO, duration=10) + self.iface.messageBar().pushMessage("Info", u"Extraction réussie : ", u" Pensez à renommer vos couches pour plus de lisibilité.", level=Qgis.Success, duration=4) + + + elif layer.selectedFeatureCount() == 0 : + #self.iface.messageBar().pushMessage(u"Vous devez sélectionner au moins un polygone !", level=QgsMessageBar.WARNING, duration=5) + self.iface.messageBar().pushMessage("Ooops", u"Vous devez sélectionner au moins un polygone !", level=Qgis.Warning, duration=5) + reqwhere_geom = '' + + else : + #self.iface.messageBar().pushMessage(u"Vous devez sélectionner qu'un seul polygone !", level=QgsMessageBar.WARNING, duration=5) + self.iface.messageBar().pushMessage("Ooops", u"Vous ne devez sélectionner qu'un seul polygone !", level=Qgis.Warning, duration=5) + reqwhere_geom = '' + else : + # Requete finale + reqwhere_final = '(' + reqwhere_obs + ')' + 'AND' + reqwhere_insee + 'AND' + reqwhere_ordre + 'AND' + reqwhere_sp + 'AND' + '(' + reqwhere_pat + ')' + 'AND' + reqwhere_regne + 'AND' + reqwhere_date + + # Nettoyage de la requete finale + while reqwhere_final.find('ANDAND') != -1 : + reqwhere_final = reqwhere_final.replace('ANDAND','AND') + while reqwhere_final.find('AND()AND') != -1 : + reqwhere_final = reqwhere_final.replace('AND()AND','AND') + while reqwhere_final[-3:] == 'AND' : + reqwhere_final = reqwhere_final[:-3] + while reqwhere_final[:5] == '()AND' : + reqwhere_final = reqwhere_final[5:] + while reqwhere_final[-5:] == 'AND()' : + reqwhere_final = reqwhere_final[:-5] + while reqwhere_final[:3] == 'AND' : + reqwhere_final = reqwhere_final[3:] + + ## Affichage des tables + table_name = 'observations' + + uri = QgsDataSourceUri() + uri.setConnection(host ,port ,dbname ,user ,mdp) + + ## Centroide + if self.dlg.centroide.isChecked() == 1 : + if reqwhere_final.find('()') != -1 : + reqwhere_final = '' + uri.setDataSource("_agregation_ra", "observations_centroide", "geometrie", reqwhere_final, "gid") + layer = self.iface.addVectorLayer(uri.uri(), table_name + '_centroides', "postgres") + + else : + + 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) + cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_conn.close() + + # Creation group de couches + i = qgis.utils.iface + #legende = i.legendInterface() + legende = QgsProject.instance().layerTreeRoot() + #nomgroupe = 'Observations' + #groupe = legende.addGroup(nomgroupe,False) + groupe = legende.insertGroup(1, "Observations") + groupe = legende.findGroup("Observations") + + # Récupération de la liste de groupes + #toc = iface.layerTreeView() + #toc = qgis.utils.iface.legendInterface() + #groups = toc. + #groups = toc.groups() + #index = groups.index(nomgroupe) + index = 1 + + ### Polygone + reqwhere_final_poly = '(' + reqwhere_final + " AND GeometryType(geometrie) LIKE '%POLYGON%'" + ')' + if reqwhere_final_poly.find('()') != -1 : + reqwhere_final_poly = "(GeometryType(geometrie) LIKE '%POLYGON%')" + + SQL_count_poly = u"""SELECT DISTINCT count(gid) AS count FROM _agregation_ra.observations_table WHERE """ + reqwhere_final_poly + cur.execute(SQL_count_poly) + list_count_poly = cur.fetchall() + count_poly = list_count_poly[0][0] + + if count_poly != 0: + uri.setDataSource("_agregation_ra", "observations_table", "geometrie", reqwhere_final_poly, "gid") + #layer_poly = self.iface.addVectorLayer(uri.uri(), table_name + '_poly', "postgres") + layer_poly = QgsVectorLayer(uri.uri(), table_name + '_poly', "postgres") + QgsProject.instance().addMapLayer(layer_poly, False) + #legende.moveLayer(layer_poly,index) + #groupe.addLayer(layer_poly) + groupe.insertChildNode(0, QgsLayerTreeLayer(layer_poly)) + + ### Point + reqwhere_final_point = '(' + reqwhere_final + " AND GeometryType(geometrie) LIKE '%POINT%'" + ')' + if reqwhere_final_point.find('()') != -1 : + reqwhere_final_point = "(GeometryType(geometrie) LIKE '%POINT%')" + + SQL_count_point = u"""SELECT DISTINCT count(gid) AS count FROM _agregation_ra.observations_table WHERE """ + reqwhere_final_point + cur.execute(SQL_count_point) + list_count_point = cur.fetchall() + count_point = list_count_point[0][0] + + if count_point != 0: + uri.setDataSource("_agregation_ra", "observations_table", "geometrie", reqwhere_final_point, "gid") + #layer_point = self.iface.addVectorLayer(uri.uri(), table_name + '_point', "postgres") + layer_point = QgsVectorLayer(uri.uri(), table_name + '_point', "postgres") + QgsProject.instance().addMapLayer(layer_point, False) + #legende.moveLayer(layer_point,index) + #groupe.addLayer(layer_point) + groupe.insertChildNode(0, QgsLayerTreeLayer(layer_point)) + + ### Ligne + reqwhere_final_ligne = '(' + reqwhere_final + " AND GeometryType(geometrie) LIKE '%LINE%'" + ')' + if reqwhere_final_ligne.find('()') != -1 : + reqwhere_final_ligne = "(GeometryType(geometrie) LIKE '%LINE%')" + + SQL_count_ligne = u"""SELECT DISTINCT count(gid) AS count FROM _agregation_ra.observations_table WHERE """ + reqwhere_final_ligne + cur.execute(SQL_count_ligne) + list_count_ligne = cur.fetchall() + count_ligne = list_count_ligne[0][0] + + if count_ligne != 0: + uri.setDataSource("_agregation_ra", "observations_table", "geometrie", reqwhere_final_ligne, "gid") + #layer_ligne = self.iface.addVectorLayer(uri.uri(), table_name + '_ligne', "postgres") + layer_ligne = QgsVectorLayer(uri.uri(), table_name + '_ligne', "postgres") + QgsProject.instance().addMapLayer(layer_ligne, False) + #legende.moveLayer(layer_ligne,index) + #groupe.addLayer(layer_ligne) + groupe.insertChildNode(0, QgsLayerTreeLayer(layer_ligne)) + + # ajout des couches dans le groupe Observations + #legende.setGroupExpanded (index, True) + + #self.iface.messageBar().pushMessage(u"Extraction réussie : ", u" Pensez à renommer vos couches pour plus de lisibilité.", level=QgsMessageBar.INFO, duration=10) + self.iface.messageBar().pushMessage("Info", u"Extraction réussie : ", u" Pensez à renommer vos couches pour plus de lisibilité.", level=Qgis.Success, duration=10) + + pass + + def export(self): + + 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) + + else : + selection = layer.selectedFeatures() + if (layer.selectedFeatureCount() == 1) : + for feature in selection: + geom = feature.geometry() + poly = geom.asWkt() + + buffer = '100' + + 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) + cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor) + first_conn.close() + + SQL_list_sp = u"""SELECT DISTINCT classe::text,ordre::text,nom_complet::text,split_part(nom_vern::text,',',1) as nom_vern,cd_ref::text as cd_ref,max(COALESCE(date_obs, date_debut_obs))::text AS derniere_obs FROM _agregation_ra.observations_table WHERE ST_intersects(geometrie,ST_Buffer(ST_geomFromText('""" + poly + "',2154), " + buffer + " ))GROUP BY classe::text, ordre::text, nom_complet::text, nom_vern::text, cd_ref::text ORDER BY nom_complet::text""" + cur.execute(SQL_list_sp) + data_sp = cur.fetchall() + chemin_fichier, __ = QFileDialog.getSaveFileName(None, 'Enregistrer sous...', r"C:\Users\\Desktop\\" + str(os.environ.get("USERNAME")) + '_liste_sp.csv', "Fichiers CSV (*.csv)") + #file = open(chemin_fichier, 'wb') + file = open(chemin_fichier, 'w', newline='', encoding='utf-8') + #file.write('\ufeff'.encode('utf8')) # BOM (optionel...Permet a Excel d'ouvrir proprement le fichier en UTF-8) + file.write('\ufeff') + writer = csv.writer(file, delimiter = ';') # délimiteur ';' pour faciliter l'ouverture avec Excel + writer.writerow(['Classe', 'Ordre', 'Nom Complet', 'Nom Vernaculaire','cd_ref', 'Date Derniere Observation']) # Création des entêtes + + for row in data_sp : # Boucle d'écriture ligne par ligne dans le csv + #print(1) + list_sp = [] + if row[0] == None : # Si la valeur est 'None' l'encodage ne peut se faire donc boucle d'évitement + row0 = str(row[0]) + row0 = '' + else : + row0 = row[0] + #print(row0) + list_sp.append(row0) + if row[1] == None : # Si la valeur est 'None' l'encodage ne peut se faire donc boucle d'évitement + row1 = str(row[1]) + row1 = '' + else : + row1 = row[1] + list_sp.append(row1) + if row[2] == None : # Si la valeur est 'None' l'encodage ne peut se faire donc boucle d'évitement + row2 = str(row[2]) + row2 = '' + else : + row2 = row[2] + list_sp.append(row2) + if row[3] == None : # Si la valeur est 'None' l'encodage ne peut se faire donc boucle d'évitement + row3 = str(row[3]) + row3 = '' + else : + row3 = row[3] + list_sp.append(row3) + if row[4] == None : + row4 = str(row[4]) + row4 = '' + else : + row4 = row[4] + list_sp.append(row4) + if row[5] == None : + row5 = str(row[5]) + row5 = '' + else : + row5 = row[5] + print(row5) + list_sp.append(row5) + writer.writerow(list_sp) + + file.close() + #self.iface.messageBar().pushMessage(u"Export réussi dans " + chemin_fichier , level=QgsMessageBar.INFO, duration=5) + self.iface.messageBar().pushMessage("Ooops", u"Export réussi dans " + chemin_fichier, level=Qgis.Success, duration=5) + + elif (layer.selectedFeatureCount() == 0) : + #self.iface.messageBar().pushMessage(u"Vous devez sélectionner au moins un polygone !", level=QgsMessageBar.WARNING, duration=5) + self.iface.messageBar().pushMessage("Ooops", u"Vous devez sélectionner au moins un polygone !", level=Qgis.Warning, duration=5) + + else : + #self.iface.messageBar().pushMessage(u"Vous devez sélectionner qu'un seul polygone !", level=QgsMessageBar.WARNING, duration=5) + self.iface.messageBar().pushMessage("Ooops", u"Vous ne devez sélectionner qu'un seul polygone !", level=Qgis.Warning, duration=5) diff --git a/CenRa_SICEN/sicen_export.png b/CenRa_SICEN/sicen_export.png new file mode 100644 index 0000000000000000000000000000000000000000..835846046cb445b624d9a568b3281262d621e09c GIT binary patch literal 4427 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 R7m5G?002ovPDHLkV1g@~ho%4k literal 0 HcmV?d00001 diff --git a/CenRa_SICEN/sicendialog.py b/CenRa_SICEN/sicendialog.py new file mode 100644 index 00000000..4ab7be7e --- /dev/null +++ b/CenRa_SICEN/sicendialog.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +""" +/*************************************************************************** + SICENDialog + A QGIS plugin + Filtre sur données SICEN + ------------------- + begin : 2014-10-17 + copyright : (C) 2014 by Guillaume COSTES + email : guillaume.costes@espaces-naturels.fr + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ +""" + +from qgis.PyQt import QtCore, QtGui +from qgis.PyQt.QtWidgets import QAction, QDialog +from .ui_sicen import Ui_SICEN +# create the dialog for zoom to point + + +class SICENDialog(QDialog, Ui_SICEN): + def __init__(self): + QDialog.__init__(self) + # Set up the user interface from Designer. + # After setupUI you can access any designer object by doing + # self., and you can use autoconnect slots - see + # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html + # #widgets-and-dialogs-with-auto-connect + self.setupUi(self) diff --git a/CenRa_SICEN/ui_sicen.py b/CenRa_SICEN/ui_sicen.py new file mode 100644 index 00000000..0c7ce23f --- /dev/null +++ b/CenRa_SICEN/ui_sicen.py @@ -0,0 +1,756 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui_sicen.ui' +# +# Created: Wed Apr 22 14:03:07 2015 +# by: PyQt4 UI code generator 4.10.2 +# +# WARNING! All changes made in this file will be lost! + +from builtins import object +from qgis.PyQt import QtCore, QtGui +from qgis.PyQt.QtGui import QFont +from qgis.PyQt.QtWidgets import QAction, QDialog, QDialogButtonBox, QLabel, QApplication, QTabWidget, QWidget, QGroupBox, QGridLayout, QComboBox, QCheckBox, QCalendarWidget, QToolBox, QFrame, QLineEdit, QSizePolicy #Modifié + + +try: + _fromUtf8 = QtCore.QString.fromUtf8 +except AttributeError: + def _fromUtf8(s): + return s + +try: + _encoding = QApplication.UnicodeUTF8 + def _translate(context, text, disambig): + return QApplication.translate(context, text, disambig, _encoding) +except AttributeError: + def _translate(context, text, disambig): + return QApplication.translate(context, text, disambig) + +class Ui_SICEN(object): + def setupUi(self, SICEN): + SICEN.setObjectName(_fromUtf8("SICEN")) + SICEN.resize(592, 556) + self.buttonBox = QDialogButtonBox(SICEN) + self.buttonBox.setGeometry(QtCore.QRect(390, 520, 161, 32)) + self.buttonBox.setOrientation(QtCore.Qt.Horizontal) + self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok) + self.buttonBox.setObjectName(_fromUtf8("buttonBox")) + self.Titre = QLabel(SICEN) + self.Titre.setGeometry(QtCore.QRect(110, 10, 331, 31)) + font = QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.Titre.setFont(font) + self.Titre.setObjectName(_fromUtf8("Titre")) + self.Emprise = QTabWidget(SICEN) + self.Emprise.setGeometry(QtCore.QRect(10, 80, 571, 431)) + self.Emprise.setTabPosition(QTabWidget.North) + self.Emprise.setTabShape(QTabWidget.Rounded) + self.Emprise.setObjectName(_fromUtf8("Emprise")) + self.tab_2 = QWidget() + self.tab_2.setObjectName(_fromUtf8("tab_2")) + self.groupBox_4 = QGroupBox(self.tab_2) + self.groupBox_4.setGeometry(QtCore.QRect(10, 9, 541, 81)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.groupBox_4.setFont(font) + self.groupBox_4.setAlignment(QtCore.Qt.AlignCenter) + self.groupBox_4.setObjectName(_fromUtf8("groupBox_4")) + self.gridLayoutWidget_5 = QWidget(self.groupBox_4) + self.gridLayoutWidget_5.setGeometry(QtCore.QRect(10, 20, 521, 51)) + self.gridLayoutWidget_5.setObjectName(_fromUtf8("gridLayoutWidget_5")) + self.gridLayout_5 = QGridLayout(self.gridLayoutWidget_5) + self.gridLayout_5.setMargin(0) + self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5")) + self.observateur_1 = QComboBox(self.gridLayoutWidget_5) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.observateur_1.setFont(font) + self.observateur_1.setObjectName(_fromUtf8("observateur_1")) + self.gridLayout_5.addWidget(self.observateur_1, 0, 0, 1, 1) + self.observateur_3 = QComboBox(self.gridLayoutWidget_5) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.observateur_3.setFont(font) + self.observateur_3.setObjectName(_fromUtf8("observateur_3")) + self.gridLayout_5.addWidget(self.observateur_3, 1, 0, 1, 1) + self.observateur_2 = QComboBox(self.gridLayoutWidget_5) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.observateur_2.setFont(font) + self.observateur_2.setObjectName(_fromUtf8("observateur_2")) + self.gridLayout_5.addWidget(self.observateur_2, 0, 1, 1, 1) + self.observateur_4 = QComboBox(self.gridLayoutWidget_5) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.observateur_4.setFont(font) + self.observateur_4.setObjectName(_fromUtf8("observateur_4")) + self.gridLayout_5.addWidget(self.observateur_4, 1, 1, 1, 1) + self.groupBox_5 = QGroupBox(self.tab_2) + self.groupBox_5.setGeometry(QtCore.QRect(10, 100, 541, 71)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.groupBox_5.setFont(font) + self.groupBox_5.setAlignment(QtCore.Qt.AlignCenter) + self.groupBox_5.setObjectName(_fromUtf8("groupBox_5")) + self.gridLayoutWidget_6 = QWidget(self.groupBox_5) + self.gridLayoutWidget_6.setGeometry(QtCore.QRect(10, 20, 521, 41)) + self.gridLayoutWidget_6.setObjectName(_fromUtf8("gridLayoutWidget_6")) + self.gridLayout_6 = QGridLayout(self.gridLayoutWidget_6) + self.gridLayout_6.setMargin(0) + self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6")) + self.label = QLabel(self.gridLayoutWidget_6) + font = QFont() + font.setBold(False) + font.setItalic(True) + font.setWeight(50) + self.label.setFont(font) + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName(_fromUtf8("label")) + self.gridLayout_6.addWidget(self.label, 0, 0, 1, 1) + self.label_2 = QLabel(self.gridLayoutWidget_6) + font = QFont() + font.setBold(False) + font.setItalic(True) + font.setWeight(50) + self.label_2.setFont(font) + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName(_fromUtf8("label_2")) + self.gridLayout_6.addWidget(self.label_2, 0, 1, 1, 1) + self.nom_com_1 = QComboBox(self.gridLayoutWidget_6) + self.nom_com_1.setMinimumSize(QtCore.QSize(200, 0)) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.nom_com_1.setFont(font) + self.nom_com_1.setObjectName(_fromUtf8("nom_com_1")) + self.gridLayout_6.addWidget(self.nom_com_1, 1, 0, 1, 1) + self.nom_com_2 = QComboBox(self.gridLayoutWidget_6) + self.nom_com_2.setMinimumSize(QtCore.QSize(200, 0)) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.nom_com_2.setFont(font) + self.nom_com_2.setObjectName(_fromUtf8("nom_com_2")) + self.gridLayout_6.addWidget(self.nom_com_2, 1, 1, 1, 1) + self.groupBox_7 = QGroupBox(self.tab_2) + self.groupBox_7.setGeometry(QtCore.QRect(10, 180, 541, 221)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.groupBox_7.setFont(font) + self.groupBox_7.setAlignment(QtCore.Qt.AlignCenter) + self.groupBox_7.setObjectName(_fromUtf8("groupBox_7")) + self.gridLayoutWidget_8 = QWidget(self.groupBox_7) + self.gridLayoutWidget_8.setGeometry(QtCore.QRect(10, 20, 520, 191)) + self.gridLayoutWidget_8.setObjectName(_fromUtf8("gridLayoutWidget_8")) + self.gridLayout_8 = QGridLayout(self.gridLayoutWidget_8) + self.gridLayout_8.setMargin(0) + self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8")) + self.label_3 = QLabel(self.gridLayoutWidget_8) + font = QFont() + font.setBold(False) + font.setItalic(True) + font.setWeight(50) + self.label_3.setFont(font) + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName(_fromUtf8("label_3")) + self.gridLayout_8.addWidget(self.label_3, 0, 0, 1, 1) + self.label_4 = QLabel(self.gridLayoutWidget_8) + font = QFont() + font.setBold(False) + font.setItalic(True) + font.setWeight(50) + self.label_4.setFont(font) + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName(_fromUtf8("label_4")) + self.gridLayout_8.addWidget(self.label_4, 0, 1, 1, 1) + self.date_min = QCalendarWidget(self.gridLayoutWidget_8) + self.date_min.setObjectName(_fromUtf8("date_min")) + self.gridLayout_8.addWidget(self.date_min, 1, 0, 1, 1) + self.date_max = QCalendarWidget(self.gridLayoutWidget_8) + self.date_max.setObjectName(_fromUtf8("date_max")) + self.gridLayout_8.addWidget(self.date_max, 1, 1, 1, 1) + self.Emprise.addTab(self.tab_2, _fromUtf8("")) + self.tab = QWidget() + self.tab.setObjectName(_fromUtf8("tab")) + self.groupBox_8 = QGroupBox(self.tab) + self.groupBox_8.setGeometry(QtCore.QRect(10, 10, 511, 51)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.groupBox_8.setFont(font) + self.groupBox_8.setAlignment(QtCore.Qt.AlignCenter) + self.groupBox_8.setObjectName(_fromUtf8("groupBox_8")) + self.gridLayoutWidget_9 = QWidget(self.groupBox_8) + self.gridLayoutWidget_9.setGeometry(QtCore.QRect(10, 20, 491, 21)) + self.gridLayoutWidget_9.setObjectName(_fromUtf8("gridLayoutWidget_9")) + self.gridLayout_9 = QGridLayout(self.gridLayoutWidget_9) + self.gridLayout_9.setMargin(0) + self.gridLayout_9.setHorizontalSpacing(100) + self.gridLayout_9.setObjectName(_fromUtf8("gridLayout_9")) + self.Animalia = QCheckBox(self.gridLayoutWidget_9) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.Animalia.setFont(font) + self.Animalia.setLayoutDirection(QtCore.Qt.RightToLeft) + self.Animalia.setObjectName(_fromUtf8("Animalia")) + self.gridLayout_9.addWidget(self.Animalia, 0, 0, 1, 1) + self.Plantae = QCheckBox(self.gridLayoutWidget_9) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.Plantae.setFont(font) + self.Plantae.setObjectName(_fromUtf8("Plantae")) + self.gridLayout_9.addWidget(self.Plantae, 0, 1, 1, 1) + self.gridLayoutWidget_10 = QWidget(self.tab) + self.gridLayoutWidget_10.setGeometry(QtCore.QRect(9, 90, 511, 152)) + self.gridLayoutWidget_10.setObjectName(_fromUtf8("gridLayoutWidget_10")) + self.gridLayout_11 = QGridLayout(self.gridLayoutWidget_10) + self.gridLayout_11.setMargin(0) + self.gridLayout_11.setObjectName(_fromUtf8("gridLayout_11")) + self.label_6 = QLabel(self.gridLayoutWidget_10) + self.label_6.setMinimumSize(QtCore.QSize(500, 20)) + self.label_6.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QFont() + font.setBold(False) + font.setItalic(True) + font.setWeight(50) + self.label_6.setFont(font) + self.label_6.setLayoutDirection(QtCore.Qt.LeftToRight) + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName(_fromUtf8("label_6")) + self.gridLayout_11.addWidget(self.label_6, 4, 0, 1, 1) + self.nom_vern = QComboBox(self.gridLayoutWidget_10) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.nom_vern.setFont(font) + self.nom_vern.setObjectName(_fromUtf8("nom_vern")) + self.gridLayout_11.addWidget(self.nom_vern, 3, 0, 1, 1) + self.label_5 = QLabel(self.gridLayoutWidget_10) + self.label_5.setMinimumSize(QtCore.QSize(500, 20)) + self.label_5.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QFont() + font.setBold(False) + font.setItalic(True) + font.setWeight(50) + self.label_5.setFont(font) + self.label_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_5.setObjectName(_fromUtf8("label_5")) + self.gridLayout_11.addWidget(self.label_5, 2, 0, 1, 1) + self.nom_complet = QComboBox(self.gridLayoutWidget_10) + self.nom_complet.setMinimumSize(QtCore.QSize(500, 0)) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.nom_complet.setFont(font) + self.nom_complet.setObjectName(_fromUtf8("nom_complet")) + self.gridLayout_11.addWidget(self.nom_complet, 5, 0, 1, 1) + self.ordre = QComboBox(self.gridLayoutWidget_10) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.ordre.setFont(font) + self.ordre.setObjectName(_fromUtf8("ordre")) + self.gridLayout_11.addWidget(self.ordre, 1, 0, 1, 1) + self.label_13 = QLabel(self.gridLayoutWidget_10) + self.label_13.setMinimumSize(QtCore.QSize(500, 20)) + self.label_13.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QFont() + font.setBold(False) + font.setItalic(True) + font.setWeight(50) + self.label_13.setFont(font) + self.label_13.setAlignment(QtCore.Qt.AlignCenter) + self.label_13.setObjectName(_fromUtf8("label_13")) + self.gridLayout_11.addWidget(self.label_13, 0, 0, 1, 1) + self.Emprise.addTab(self.tab, _fromUtf8("")) + self.tab_3 = QWidget() + self.tab_3.setObjectName(_fromUtf8("tab_3")) + self.protections = QToolBox(self.tab_3) + self.protections.setGeometry(QtCore.QRect(10, 10, 511, 391)) + self.protections.setFrameShape(QFrame.NoFrame) + self.protections.setFrameShadow(QFrame.Plain) + self.protections.setLineWidth(1) + self.protections.setObjectName(_fromUtf8("protections")) + self.page_2 = QWidget() + self.page_2.setGeometry(QtCore.QRect(0, 0, 511, 310)) + self.page_2.setObjectName(_fromUtf8("page_2")) + self.groupBox = QGroupBox(self.page_2) + self.groupBox.setGeometry(QtCore.QRect(0, 0, 511, 121)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.groupBox.setFont(font) + self.groupBox.setAlignment(QtCore.Qt.AlignCenter) + self.groupBox.setObjectName(_fromUtf8("groupBox")) + self.gridLayoutWidget_2 = QWidget(self.groupBox) + self.gridLayoutWidget_2.setGeometry(QtCore.QRect(10, 20, 491, 88)) + self.gridLayoutWidget_2.setObjectName(_fromUtf8("gridLayoutWidget_2")) + self.gridLayout_2 = QGridLayout(self.gridLayoutWidget_2) + self.gridLayout_2.setMargin(0) + self.gridLayout_2.setHorizontalSpacing(50) + self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2")) + self.LRD_38 = QCheckBox(self.gridLayoutWidget_2) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRD_38.setFont(font) + self.LRD_38.setLayoutDirection(QtCore.Qt.RightToLeft) + self.LRD_38.setObjectName(_fromUtf8("LRD_38")) + self.gridLayout_2.addWidget(self.LRD_38, 3, 0, 1, 1) + self.LRD_01 = QCheckBox(self.gridLayoutWidget_2) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRD_01.setFont(font) + self.LRD_01.setLayoutDirection(QtCore.Qt.RightToLeft) + self.LRD_01.setObjectName(_fromUtf8("LRD_01")) + self.gridLayout_2.addWidget(self.LRD_01, 0, 0, 1, 1) + self.LRD_07 = QCheckBox(self.gridLayoutWidget_2) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRD_07.setFont(font) + self.LRD_07.setLayoutDirection(QtCore.Qt.RightToLeft) + self.LRD_07.setObjectName(_fromUtf8("LRD_07")) + self.gridLayout_2.addWidget(self.LRD_07, 1, 0, 1, 1) + self.LRD_26 = QCheckBox(self.gridLayoutWidget_2) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRD_26.setFont(font) + self.LRD_26.setLayoutDirection(QtCore.Qt.RightToLeft) + self.LRD_26.setObjectName(_fromUtf8("LRD_26")) + self.gridLayout_2.addWidget(self.LRD_26, 2, 0, 1, 1) + self.LRD_42 = QCheckBox(self.gridLayoutWidget_2) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRD_42.setFont(font) + self.LRD_42.setObjectName(_fromUtf8("LRD_42")) + self.gridLayout_2.addWidget(self.LRD_42, 0, 1, 1, 1) + self.LRD_69 = QCheckBox(self.gridLayoutWidget_2) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRD_69.setFont(font) + self.LRD_69.setObjectName(_fromUtf8("LRD_69")) + self.gridLayout_2.addWidget(self.LRD_69, 1, 1, 1, 1) + self.LRD_73 = QCheckBox(self.gridLayoutWidget_2) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRD_73.setFont(font) + self.LRD_73.setObjectName(_fromUtf8("LRD_73")) + self.gridLayout_2.addWidget(self.LRD_73, 2, 1, 1, 1) + self.LRD_74 = QCheckBox(self.gridLayoutWidget_2) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRD_74.setFont(font) + self.LRD_74.setObjectName(_fromUtf8("LRD_74")) + self.gridLayout_2.addWidget(self.LRD_74, 3, 1, 1, 1) + self.groupBox_2 = QGroupBox(self.page_2) + self.groupBox_2.setGeometry(QtCore.QRect(0, 130, 511, 71)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.groupBox_2.setFont(font) + self.groupBox_2.setAlignment(QtCore.Qt.AlignCenter) + self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) + self.gridLayoutWidget_3 = QWidget(self.groupBox_2) + self.gridLayoutWidget_3.setGeometry(QtCore.QRect(10, 20, 491, 42)) + self.gridLayoutWidget_3.setObjectName(_fromUtf8("gridLayoutWidget_3")) + self.gridLayout_3 = QGridLayout(self.gridLayoutWidget_3) + self.gridLayout_3.setMargin(0) + self.gridLayout_3.setHorizontalSpacing(50) + self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3")) + self.LRR_Flore = QCheckBox(self.gridLayoutWidget_3) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRR_Flore.setFont(font) + self.LRR_Flore.setLayoutDirection(QtCore.Qt.RightToLeft) + self.LRR_Flore.setObjectName(_fromUtf8("LRR_Flore")) + self.gridLayout_3.addWidget(self.LRR_Flore, 0, 0, 1, 1) + self.LRR_Oiseaux = QCheckBox(self.gridLayoutWidget_3) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRR_Oiseaux.setFont(font) + self.LRR_Oiseaux.setLayoutDirection(QtCore.Qt.RightToLeft) + self.LRR_Oiseaux.setObjectName(_fromUtf8("LRR_Oiseaux")) + self.gridLayout_3.addWidget(self.LRR_Oiseaux, 1, 0, 1, 1) + self.LRR_Autre = QCheckBox(self.gridLayoutWidget_3) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRR_Autre.setFont(font) + self.LRR_Autre.setObjectName(_fromUtf8("LRR_Autre")) + self.gridLayout_3.addWidget(self.LRR_Autre, 0, 1, 1, 1) + self.groupBox_3 = QGroupBox(self.page_2) + self.groupBox_3.setGeometry(QtCore.QRect(0, 210, 511, 71)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.groupBox_3.setFont(font) + self.groupBox_3.setAlignment(QtCore.Qt.AlignCenter) + self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) + self.gridLayoutWidget_4 = QWidget(self.groupBox_3) + self.gridLayoutWidget_4.setGeometry(QtCore.QRect(10, 20, 491, 42)) + self.gridLayoutWidget_4.setObjectName(_fromUtf8("gridLayoutWidget_4")) + self.gridLayout_4 = QGridLayout(self.gridLayoutWidget_4) + self.gridLayout_4.setContentsMargins(-1, 0, -1, -1) + self.gridLayout_4.setHorizontalSpacing(50) + self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4")) + self.LRN_Autre = QCheckBox(self.gridLayoutWidget_4) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRN_Autre.setFont(font) + self.LRN_Autre.setObjectName(_fromUtf8("LRN_Autre")) + self.gridLayout_4.addWidget(self.LRN_Autre, 1, 1, 1, 1) + self.LRN_Flore = QCheckBox(self.gridLayoutWidget_4) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRN_Flore.setFont(font) + self.LRN_Flore.setLayoutDirection(QtCore.Qt.RightToLeft) + self.LRN_Flore.setObjectName(_fromUtf8("LRN_Flore")) + self.gridLayout_4.addWidget(self.LRN_Flore, 0, 0, 1, 1) + self.LRN_Oiseaux = QCheckBox(self.gridLayoutWidget_4) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRN_Oiseaux.setFont(font) + self.LRN_Oiseaux.setLayoutDirection(QtCore.Qt.RightToLeft) + self.LRN_Oiseaux.setObjectName(_fromUtf8("LRN_Oiseaux")) + self.gridLayout_4.addWidget(self.LRN_Oiseaux, 1, 0, 1, 1) + self.LRN_Ortho = QCheckBox(self.gridLayoutWidget_4) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.LRN_Ortho.setFont(font) + self.LRN_Ortho.setObjectName(_fromUtf8("LRN_Ortho")) + self.gridLayout_4.addWidget(self.LRN_Ortho, 0, 1, 1, 1) + self.gridLayoutWidget_11 = QWidget(self.page_2) + self.gridLayoutWidget_11.setGeometry(QtCore.QRect(6, 290, 501, 19)) + self.gridLayoutWidget_11.setObjectName(_fromUtf8("gridLayoutWidget_11")) + self.gridLayout_12 = QGridLayout(self.gridLayoutWidget_11) + self.gridLayout_12.setMargin(0) + self.gridLayout_12.setHorizontalSpacing(50) + self.gridLayout_12.setObjectName(_fromUtf8("gridLayout_12")) + self.UICN = QCheckBox(self.gridLayoutWidget_11) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.UICN.setFont(font) + self.UICN.setLayoutDirection(QtCore.Qt.RightToLeft) + self.UICN.setObjectName(_fromUtf8("UICN")) + self.gridLayout_12.addWidget(self.UICN, 0, 0, 1, 1) + self.LRE = QCheckBox(self.gridLayoutWidget_11) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.LRE.setFont(font) + self.LRE.setObjectName(_fromUtf8("LRE")) + self.gridLayout_12.addWidget(self.LRE, 0, 1, 1, 1) + self.protections.addItem(self.page_2, _fromUtf8("")) + self.page = QWidget() + self.page.setGeometry(QtCore.QRect(0, 0, 100, 30)) + self.page.setObjectName(_fromUtf8("page")) + self.PATRIMONIALITE = QCheckBox(self.page) + self.PATRIMONIALITE.setGeometry(QtCore.QRect(140, 10, 251, 17)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.PATRIMONIALITE.setFont(font) + self.PATRIMONIALITE.setObjectName(_fromUtf8("PATRIMONIALITE")) + self.gridLayoutWidget = QWidget(self.page) + self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 40, 501, 88)) + self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget")) + self.gridLayout = QGridLayout(self.gridLayoutWidget) + self.gridLayout.setMargin(0) + self.gridLayout.setHorizontalSpacing(50) + self.gridLayout.setObjectName(_fromUtf8("gridLayout")) + self.PATRI38 = QCheckBox(self.gridLayoutWidget) + self.PATRI38.setLayoutDirection(QtCore.Qt.RightToLeft) + self.PATRI38.setObjectName(_fromUtf8("PATRI38")) + self.gridLayout.addWidget(self.PATRI38, 3, 0, 1, 1) + self.PATRI01 = QCheckBox(self.gridLayoutWidget) + self.PATRI01.setLayoutDirection(QtCore.Qt.RightToLeft) + self.PATRI01.setObjectName(_fromUtf8("PATRI01")) + self.gridLayout.addWidget(self.PATRI01, 0, 0, 1, 1) + self.PATRI07 = QCheckBox(self.gridLayoutWidget) + self.PATRI07.setLayoutDirection(QtCore.Qt.RightToLeft) + self.PATRI07.setObjectName(_fromUtf8("PATRI07")) + self.gridLayout.addWidget(self.PATRI07, 1, 0, 1, 1) + self.PATRI26 = QCheckBox(self.gridLayoutWidget) + self.PATRI26.setLayoutDirection(QtCore.Qt.RightToLeft) + self.PATRI26.setObjectName(_fromUtf8("PATRI26")) + self.gridLayout.addWidget(self.PATRI26, 2, 0, 1, 1) + self.PATRI42 = QCheckBox(self.gridLayoutWidget) + self.PATRI42.setObjectName(_fromUtf8("PATRI42")) + self.gridLayout.addWidget(self.PATRI42, 0, 1, 1, 1) + self.PATRI69 = QCheckBox(self.gridLayoutWidget) + self.PATRI69.setObjectName(_fromUtf8("PATRI69")) + self.gridLayout.addWidget(self.PATRI69, 1, 1, 1, 1) + self.PATRI73 = QCheckBox(self.gridLayoutWidget) + self.PATRI73.setObjectName(_fromUtf8("PATRI73")) + self.gridLayout.addWidget(self.PATRI73, 2, 1, 1, 1) + self.PATRI74 = QCheckBox(self.gridLayoutWidget) + self.PATRI74.setObjectName(_fromUtf8("PATRI74")) + self.gridLayout.addWidget(self.PATRI74, 3, 1, 1, 1) + self.ZNIEFF = QCheckBox(self.page) + self.ZNIEFF.setGeometry(QtCore.QRect(140, 140, 221, 17)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.ZNIEFF.setFont(font) + self.ZNIEFF.setObjectName(_fromUtf8("ZNIEFF")) + self.protections.addItem(self.page, _fromUtf8("")) + self.page_3 = QWidget() + self.page_3.setGeometry(QtCore.QRect(0, 0, 100, 30)) + self.page_3.setObjectName(_fromUtf8("page_3")) + self.groupBox_6 = QGroupBox(self.page_3) + self.groupBox_6.setGeometry(QtCore.QRect(0, 10, 511, 51)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.groupBox_6.setFont(font) + self.groupBox_6.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_6.setObjectName(_fromUtf8("groupBox_6")) + self.gridLayoutWidget_7 = QWidget(self.groupBox_6) + self.gridLayoutWidget_7.setGeometry(QtCore.QRect(10, 20, 491, 21)) + self.gridLayoutWidget_7.setObjectName(_fromUtf8("gridLayoutWidget_7")) + self.gridLayout_7 = QGridLayout(self.gridLayoutWidget_7) + self.gridLayout_7.setMargin(0) + self.gridLayout_7.setHorizontalSpacing(50) + self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7")) + self.PD_42 = QCheckBox(self.gridLayoutWidget_7) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.PD_42.setFont(font) + self.PD_42.setObjectName(_fromUtf8("PD_42")) + self.gridLayout_7.addWidget(self.PD_42, 0, 1, 1, 1) + self.PD_38 = QCheckBox(self.gridLayoutWidget_7) + font = QFont() + font.setBold(False) + font.setWeight(50) + self.PD_38.setFont(font) + self.PD_38.setLayoutDirection(QtCore.Qt.RightToLeft) + self.PD_38.setObjectName(_fromUtf8("PD_38")) + self.gridLayout_7.addWidget(self.PD_38, 0, 0, 1, 1) + self.PR = QCheckBox(self.page_3) + self.PR.setGeometry(QtCore.QRect(10, 70, 171, 17)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.PR.setFont(font) + self.PR.setObjectName(_fromUtf8("PR")) + self.PN = QCheckBox(self.page_3) + self.PN.setGeometry(QtCore.QRect(10, 100, 171, 17)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.PN.setFont(font) + self.PN.setObjectName(_fromUtf8("PN")) + self.DH_AnnII = QCheckBox(self.page_3) + self.DH_AnnII.setGeometry(QtCore.QRect(10, 130, 201, 17)) + font = QFont() + font.setBold(True) + font.setWeight(75) + self.DH_AnnII.setFont(font) + self.DH_AnnII.setObjectName(_fromUtf8("DH_AnnII")) + self.protections.addItem(self.page_3, _fromUtf8("")) + self.Emprise.addTab(self.tab_3, _fromUtf8("")) + self.tab_4 = QWidget() + self.tab_4.setObjectName(_fromUtf8("tab_4")) + self.gridLayoutWidget_12 = QWidget(self.tab_4) + self.gridLayoutWidget_12.setGeometry(QtCore.QRect(30, 30, 481, 130)) + self.gridLayoutWidget_12.setObjectName(_fromUtf8("gridLayoutWidget_12")) + self.gridLayout_10 = QGridLayout(self.gridLayoutWidget_12) + self.gridLayout_10.setMargin(0) + self.gridLayout_10.setVerticalSpacing(20) + self.gridLayout_10.setObjectName(_fromUtf8("gridLayout_10")) + self.label_7 = QLabel(self.gridLayoutWidget_12) + font = QFont() + font.setPointSize(10) + self.label_7.setFont(font) + self.label_7.setObjectName(_fromUtf8("label_7")) + self.gridLayout_10.addWidget(self.label_7, 0, 1, 1, 1) + self.label_14 = QLabel(self.gridLayoutWidget_12) + font = QFont() + font.setPointSize(10) + self.label_14.setFont(font) + self.label_14.setObjectName(_fromUtf8("label_14")) + self.gridLayout_10.addWidget(self.label_14, 2, 1, 1, 1) + self.label_12 = QLabel(self.gridLayoutWidget_12) + font = QFont() + font.setPointSize(10) + self.label_12.setFont(font) + self.label_12.setObjectName(_fromUtf8("label_12")) + self.gridLayout_10.addWidget(self.label_12, 1, 1, 1, 1) + self.buffer = QLineEdit(self.gridLayoutWidget_12) + sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buffer.sizePolicy().hasHeightForWidth()) + self.buffer.setSizePolicy(sizePolicy) + self.buffer.setMaximumSize(QtCore.QSize(100, 16777215)) + self.buffer.setInputMethodHints(QtCore.Qt.ImhPreferNumbers) + self.buffer.setAlignment(QtCore.Qt.AlignCenter) + self.buffer.setObjectName(_fromUtf8("buffer")) + self.gridLayout_10.addWidget(self.buffer, 2, 2, 1, 1) + self.label_8 = QLabel(self.gridLayoutWidget_12) + self.label_8.setMaximumSize(QtCore.QSize(20, 16777215)) + font = QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_8.setFont(font) + self.label_8.setObjectName(_fromUtf8("label_8")) + self.gridLayout_10.addWidget(self.label_8, 0, 0, 1, 1) + self.label_9 = QLabel(self.gridLayoutWidget_12) + self.label_9.setMaximumSize(QtCore.QSize(20, 16777215)) + font = QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_9.setFont(font) + self.label_9.setObjectName(_fromUtf8("label_9")) + self.gridLayout_10.addWidget(self.label_9, 1, 0, 1, 1) + self.label_10 = QLabel(self.gridLayoutWidget_12) + self.label_10.setMaximumSize(QtCore.QSize(20, 16777215)) + font = QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_10.setFont(font) + self.label_10.setObjectName(_fromUtf8("label_10")) + self.gridLayout_10.addWidget(self.label_10, 2, 0, 1, 1) + self.label_15 = QLabel(self.tab_4) + self.label_15.setGeometry(QtCore.QRect(70, 180, 111, 16)) + font = QFont() + font.setPointSize(10) + self.label_15.setFont(font) + self.label_15.setObjectName(_fromUtf8("label_15")) + self.label_11 = QLabel(self.tab_4) + self.label_11.setGeometry(QtCore.QRect(40, 180, 12, 16)) + self.label_11.setMaximumSize(QtCore.QSize(20, 16777215)) + font = QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_11.setFont(font) + self.label_11.setObjectName(_fromUtf8("label_11")) + self.bouton_geom = QCheckBox(self.tab_4) + self.bouton_geom.setGeometry(QtCore.QRect(190, 180, 21, 16)) + self.bouton_geom.setMaximumSize(QtCore.QSize(150, 16777215)) + font = QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.bouton_geom.setFont(font) + self.bouton_geom.setLayoutDirection(QtCore.Qt.LeftToRight) + self.bouton_geom.setText(_fromUtf8("")) + self.bouton_geom.setIconSize(QtCore.QSize(20, 20)) + self.bouton_geom.setObjectName(_fromUtf8("bouton_geom")) + self.Emprise.addTab(self.tab_4, _fromUtf8("")) + self.centroide = QCheckBox(SICEN) + self.centroide.setGeometry(QtCore.QRect(80, 50, 411, 20)) + font = QFont() + font.setPointSize(10) + font.setItalic(True) + self.centroide.setFont(font) + self.centroide.setObjectName(_fromUtf8("centroide")) + + self.retranslateUi(SICEN) + self.Emprise.setCurrentIndex(0) + self.protections.setCurrentIndex(0) + self.buttonBox.accepted.connect(SICEN.accept) + self.buttonBox.rejected.connect(SICEN.reject) #Modifié + QtCore.QMetaObject.connectSlotsByName(SICEN) + + def retranslateUi(self, SICEN): + SICEN.setWindowTitle(_translate("SICEN", "SICEN", None)) + self.Titre.setText(_translate("SICEN", "Ouverture des observations SICEN", None)) + self.groupBox_4.setTitle(_translate("SICEN", "Observateur(s)", None)) + self.groupBox_5.setTitle(_translate("SICEN", "Localisation", None)) + self.label.setText(_translate("SICEN", "Commune n°1", None)) + self.label_2.setText(_translate("SICEN", "Commune n°2", None)) + self.groupBox_7.setTitle(_translate("SICEN", "Date", None)) + self.label_3.setText(_translate("SICEN", "Supérieur à :", None)) + self.label_4.setText(_translate("SICEN", "Inférieur à :", None)) + self.Emprise.setTabText(self.Emprise.indexOf(self.tab_2), _translate("SICEN", "Généralités", None)) + self.groupBox_8.setTitle(_translate("SICEN", "Règne", None)) + self.Animalia.setText(_translate("SICEN", "Animal", None)) + self.Plantae.setText(_translate("SICEN", "Végétal", None)) + self.label_6.setText(_translate("SICEN", "Nom Complet : ", None)) + self.label_5.setText(_translate("SICEN", "Nom Vernaculaire : ", None)) + self.label_13.setText(_translate("SICEN", "Ordre :", None)) + self.Emprise.setTabText(self.Emprise.indexOf(self.tab), _translate("SICEN", "Filtre par Taxons", None)) + self.groupBox.setTitle(_translate("SICEN", "Départementales", None)) + self.LRD_38.setText(_translate("SICEN", "Isère - 38", None)) + self.LRD_01.setText(_translate("SICEN", "Ain - 01", None)) + self.LRD_07.setText(_translate("SICEN", "Ardèche - 07", None)) + self.LRD_26.setText(_translate("SICEN", "Drôme - 26", None)) + self.LRD_42.setText(_translate("SICEN", "42 - Loire", None)) + self.LRD_69.setText(_translate("SICEN", "69 - Rhône", None)) + self.LRD_73.setText(_translate("SICEN", "73 - Savoie", None)) + self.LRD_74.setText(_translate("SICEN", "74 - Haute-Savoie", None)) + self.groupBox_2.setTitle(_translate("SICEN", "Régionales", None)) + self.LRR_Flore.setText(_translate("SICEN", "Flore", None)) + self.LRR_Oiseaux.setText(_translate("SICEN", "Oiseaux", None)) + self.LRR_Autre.setText(_translate("SICEN", "Autre", None)) + self.groupBox_3.setTitle(_translate("SICEN", "Nationales", None)) + self.LRN_Autre.setText(_translate("SICEN", "Autre", None)) + self.LRN_Flore.setText(_translate("SICEN", "Flore", None)) + self.LRN_Oiseaux.setText(_translate("SICEN", "Oiseaux", None)) + self.LRN_Ortho.setText(_translate("SICEN", "Orthoptères", None)) + self.UICN.setText(_translate("SICEN", "UICN", None)) + self.LRE.setText(_translate("SICEN", "Liste Rouge Européenne", None)) + self.protections.setItemText(self.protections.indexOf(self.page_2), _translate("SICEN", "Listes Rouges", None)) + self.PATRIMONIALITE.setText(_translate("SICEN", "Espèces Patrimoniales en Rhône-Alpes", None)) + self.PATRI38.setText(_translate("SICEN", "Isère - 38", None)) + self.PATRI01.setText(_translate("SICEN", "Ain - 01", None)) + self.PATRI07.setText(_translate("SICEN", "Ardèche - 07", None)) + self.PATRI26.setText(_translate("SICEN", "Drôme - 26", None)) + self.PATRI42.setText(_translate("SICEN", "42 - Loire", None)) + self.PATRI69.setText(_translate("SICEN", "69 - Rhône", None)) + self.PATRI73.setText(_translate("SICEN", "73 - Savoie", None)) + self.PATRI74.setText(_translate("SICEN", "74 - Haute-Savoie", None)) + self.ZNIEFF.setText(_translate("SICEN", "Espèces Déterminantes ZNIEFF", None)) + self.protections.setItemText(self.protections.indexOf(self.page), _translate("SICEN", "Patrimonialités", None)) + self.groupBox_6.setTitle(_translate("SICEN", "Départementales", None)) + self.PD_42.setText(_translate("SICEN", "42 - Loire", None)) + self.PD_38.setText(_translate("SICEN", "Isère - 38", None)) + self.PR.setText(_translate("SICEN", "Régionale", None)) + self.PN.setText(_translate("SICEN", "Nationale", None)) + self.DH_AnnII.setText(_translate("SICEN", "Directive Habitat - Annexe II", None)) + self.protections.setItemText(self.protections.indexOf(self.page_3), _translate("SICEN", "Protections", None)) + self.Emprise.setTabText(self.Emprise.indexOf(self.tab_3), _translate("SICEN", "Filtre par Patrimonialités / Protections", None)) + self.label_7.setText(_translate("SICEN", "Sélectionnez une table", None)) + self.label_14.setText(_translate("SICEN", "Déterminez un tampon autour du polygone (en mètre)", None)) + self.label_12.setText(_translate("SICEN", "Sélectionnez un polygone dans cette table", None)) + self.buffer.setText(_translate("SICEN", "100", None)) + self.label_8.setText(_translate("SICEN", "1.", None)) + self.label_9.setText(_translate("SICEN", "2.", None)) + self.label_10.setText(_translate("SICEN", "3.", None)) + self.label_15.setText(_translate("SICEN", "Cochez cette case", None)) + self.label_11.setText(_translate("SICEN", "4.", None)) + self.Emprise.setTabText(self.Emprise.indexOf(self.tab_4), _translate("SICEN", "Filtre par Emprise", None)) + self.centroide.setText(_translate("SICEN", "Utiliser les centroïdes pour les observations autres que ponctuelles", None)) +