diff --git a/CenRa_FLUX/flux_editor.py b/CenRa_FLUX/flux_editor.py index d89cb73a..603e0bc1 100644 --- a/CenRa_FLUX/flux_editor.py +++ b/CenRa_FLUX/flux_editor.py @@ -119,16 +119,34 @@ class Flux_Editor(QDialog, EDITOR_CLASS): layout.addWidget(self.lineEdit) self.viewer.hide() self.DeBUG.addItem('') + self.DeBUG.addItem('Dev') self.DeBUG.addItem('01') self.DeBUG.addItem('0726') self.DeBUG.addItem('4269') + self.DeBUG.currentIndexChanged.connect(self.SwitchDEBUG) self.DeBUG.hide() def raise_(self): """Run method that performs all the real work""" self.bd_source() + def SwitchDEBUG(self): + try: + global user, mdp, host, port, dbname, sigdb, refdb + account = login_base(self.DeBUG.currentText()) + user = account[0] + mdp = account[1] + host = account[2] + port = account[3] + dbname = account[4] + sigdb = account[5] + refdb = account[6] + self.bd_source() + + except NameError: + print('Fails to switch DB for account') + def ModeDeBUG(self): self.DeBUG.show() @@ -212,6 +230,7 @@ class Flux_Editor(QDialog, EDITOR_CLASS): self.tableWidget_2.removeRow(self.tableWidget_2.currentRow()) def initialisation_flux(self): + print('run_time') if dbtype == sigdb: # self.toolButton.setEnabled(1) if self.comboBox.currentText() == 'toutes les catégories': @@ -246,6 +265,16 @@ class Flux_Editor(QDialog, EDITOR_CLASS): else: RasterList = [] + SQLprojects = """SELECT schemaname, tablename FROM pg_catalog.pg_tables WHERE tablename LIKE 'qgis_projects'""" + cur.execute(SQLprojects) + list_projects = cur.fetchall() + list_projects_qgis = [] + if len(list_projects) <= 1: + for ProjectName in list_projects: + SQLProjectsQgis = """SELECT name, metadata, content FROM """ + '"' + ProjectName[0] + '"."' + ProjectName[1] + '"' + cur.execute(SQLProjectsQgis) + list_projects_qgis.append(cur.fetchall()) + self.tableWidget.setRowCount(len(list_schema)) self.tableWidget.setColumnCount(4) i = 0 @@ -296,6 +325,35 @@ class Flux_Editor(QDialog, EDITOR_CLASS): item = QTableWidgetItem(table_name) self.tableWidget.setItem(i, 3, item) i = i + 1 + + SQLprojects = """SELECT schemaname, tablename FROM pg_catalog.pg_tables WHERE tablename LIKE 'qgis_projects'""" + cur.execute(SQLprojects) + list_projects = cur.fetchall() + list_projects_qgis = [] + if len(list_projects) <= 1: + for ProjectName in list_projects: + SQLProjectsQgis = """SELECT name, metadata, content FROM """ + '"' + ProjectName[0] + '"."' + ProjectName[1] + '"' + cur.execute(SQLProjectsQgis) + list_projects_qgis = cur.fetchall() + for Project in list_projects_qgis: + self.tableWidget.setRowCount(i + 1) + itemIcon = QTableWidgetItem() + icon = QIcon() + icon.addPixmap(QtGui.QPixmap(resources_path('icons', 'mIconQgis.svg')), QIcon.Mode(0), QIcon.State(1)) + itemIcon.setIcon(icon) + self.tableWidget.setItem(i, 0, itemIcon) + + item = QTableWidgetItem('QGIS') + self.tableWidget.setItem(i, 1, item) + + item = QTableWidgetItem('projet') + self.tableWidget.setItem(i, 2, item) + + item = QTableWidgetItem(Project[0]) + self.tableWidget.setItem(i, 3, item) + + i = i + 1 + self.tableWidget.setColumnWidth(0, 20) self.tableWidget.setColumnWidth(1, 70) self.tableWidget.setColumnWidth(2, 300) @@ -417,6 +475,11 @@ class Flux_Editor(QDialog, EDITOR_CLASS): uri.setSrid('2154') layer = QgsRasterLayer(uri.uri(), table, "postgresraster") QgsProject.instance().addMapLayer(layer) + elif code == 'QGIS': + schema = '_' + self.tableWidget_2.item(row, 2).text() + table = self.tableWidget_2.item(row, 3).text() + uri_project = 'postgresql://' + user + ':' + mdp + '@' + host + ':' + port + '?sslmode=disable&dbname=' + dbtype + "&schema=" + schema + '&project=' + table + QgsProject.instance().read(uri_project) else: uri.setDataSource(schema, table, "geom") uri.setKeyColumn('gid') diff --git a/CenRa_FLUX/tools/icons/mIconQgis.svg b/CenRa_FLUX/tools/icons/mIconQgis.svg new file mode 100644 index 00000000..e87650a5 --- /dev/null +++ b/CenRa_FLUX/tools/icons/mIconQgis.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + +