From 29350858994719fabada517ddfaebbad7cbf1a8e Mon Sep 17 00:00:00 2001 From: signedav Date: Wed, 22 Nov 2023 08:44:40 +0100 Subject: [PATCH 01/11] implementation of basket manager callable over the dataset manager --- QgisModelBaker/gui/basket_manager.py | 67 ++++++ QgisModelBaker/gui/dataset_manager.py | 37 +--- QgisModelBaker/gui/panel/basket_panel.py | 256 +++++++++++++++++++++++ QgisModelBaker/ui/basket_manager.ui | 31 +++ QgisModelBaker/ui/basket_panel.ui | 36 ++++ QgisModelBaker/ui/dataset_manager.ui | 33 +-- 6 files changed, 409 insertions(+), 51 deletions(-) create mode 100644 QgisModelBaker/gui/basket_manager.py create mode 100644 QgisModelBaker/gui/panel/basket_panel.py create mode 100644 QgisModelBaker/ui/basket_manager.ui create mode 100644 QgisModelBaker/ui/basket_panel.ui diff --git a/QgisModelBaker/gui/basket_manager.py b/QgisModelBaker/gui/basket_manager.py new file mode 100644 index 000000000..114687a9c --- /dev/null +++ b/QgisModelBaker/gui/basket_manager.py @@ -0,0 +1,67 @@ +""" +/*************************************************************************** + ------------------- + begin : 10.08.2021 + git sha : :%H$ + copyright : (C) 2021 by Dave Signer + email : david at opengis ch + ***************************************************************************/ + +/*************************************************************************** + * * + * 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.QtWidgets import QDialog, QMessageBox + +from QgisModelBaker.gui.panel.basket_panel import BasketPanel +from QgisModelBaker.utils import gui_utils + +DIALOG_UI = gui_utils.get_ui_class("basket_manager.ui") + + +class BasketManagerDialog(QDialog, DIALOG_UI): + def __init__(self, parent=None, db_connector=None, datasetname=None): + QDialog.__init__(self, parent) + self.setupUi(self) + + self.datasetname = datasetname + self.db_connector = db_connector + + self.buttonBox.accepted.connect(self._accepted) + self.buttonBox.rejected.connect(self._rejected) + + # baskets part + self.baskets_panel = BasketPanel(self) + self.baskets_layout.addWidget(self.baskets_panel) + + self.baskets_panel.load_basket_config(self.db_connector, self.datasetname) + + def _accepted(self): + feedbacks = self.baskets_panel.save_basket_config( + self.db_connector, self.datasetname + ) + negative_feedbacks = [ + feedback for feedback in feedbacks if feedback[0] is False + ] + if negative_feedbacks: + warning_box = QMessageBox(self) + warning_box.setIcon(QMessageBox.Critical) + warning_title = self.tr("Creating baskets failed") + warning_box.setWindowTitle(warning_title) + warning_box.setText( + "{}{}".format( + "\n".join([feedback[1] for feedback in negative_feedbacks]), + "\n(The problem is often an incorrectly formatted BID)", + ) + ) + warning_box.exec_() + self.close() + + def _rejected(self): + self.close() diff --git a/QgisModelBaker/gui/dataset_manager.py b/QgisModelBaker/gui/dataset_manager.py index 31c5cc4d5..3214716ad 100644 --- a/QgisModelBaker/gui/dataset_manager.py +++ b/QgisModelBaker/gui/dataset_manager.py @@ -21,6 +21,7 @@ from qgis.PyQt.QtWidgets import QDialog, QHeaderView, QMessageBox, QTableView import QgisModelBaker.libs.modelbaker.utils.db_utils as db_utils +from QgisModelBaker.gui.basket_manager import BasketManagerDialog from QgisModelBaker.gui.edit_dataset_name import EditDatasetDialog from QgisModelBaker.gui.panel import db_panel_utils from QgisModelBaker.libs.modelbaker.db_factory.db_simple_factory import DbSimpleFactory @@ -89,7 +90,7 @@ def __init__(self, iface, parent=None, wizard_embedded=False): self.add_button.clicked.connect(self._add_dataset) self.edit_button.clicked.connect(self._edit_dataset) - self.create_baskets_button.clicked.connect(self._create_baskets) + self.basket_manager_button.clicked.connect(self._open_basket_manager) self.dataset_tableview.selectionModel().selectionChanged.connect( lambda: self._enable_dataset_handling(True) ) @@ -126,7 +127,7 @@ def _enable_dataset_handling(self, enable): self.dataset_tableview.setEnabled(enable) self.add_button.setEnabled(enable) self.edit_button.setEnabled(self._valid_selection()) - self.create_baskets_button.setEnabled(self._valid_selection()) + self.basket_manager_button.setEnabled(self._valid_selection()) def _type_changed(self): ili_mode = self.type_combo_box.currentData() @@ -180,37 +181,17 @@ def _edit_dataset(self): self._refresh_datasets(self._updated_configuration()) self._jump_to_entry(edit_dataset_dialog.dataset_line_edit.text()) - def _create_baskets(self): + def _open_basket_manager(self): if self._valid_selection(): db_connector = db_utils.get_db_connector(self._updated_configuration()) if db_connector and db_connector.get_basket_handling: - feedbacks = [] - for record in db_connector.get_topics_info(): - dataset_tid = self.dataset_tableview.selectedIndexes()[0].data( - int(DatasetModel.Roles.TID) - ) - status, message = db_connector.create_basket( - dataset_tid, ".".join([record["model"], record["topic"]]) - ) - feedbacks.append((status, message)) - - info_box = QMessageBox(self) - info_box.setIcon( - QMessageBox.Warning - if len([feedback for feedback in feedbacks if not feedback[0]]) - else QMessageBox.Information + datasetname = self.dataset_tableview.selectedIndexes()[0].data( + int(DatasetModel.Roles.DATASETNAME) ) - info_title = self.tr("Created baskets") - info_box.setWindowTitle(info_title) - info_box.setText( - "{}{}".format( - "\n".join([feedback[1] for feedback in feedbacks]), - "\n\nBe aware that the IDs of the baskets are created as UUIDs. To change that, edit the t_ili2db_basket table manually." - if len([feedback for feedback in feedbacks if feedback[0]]) - else "", - ) + basket_manager_dialog = BasketManagerDialog( + self, db_connector, datasetname ) - info_box.exec_() + basket_manager_dialog.exec_() def _jump_to_entry(self, datasetname): matches = self.dataset_model.match( diff --git a/QgisModelBaker/gui/panel/basket_panel.py b/QgisModelBaker/gui/panel/basket_panel.py new file mode 100644 index 000000000..ff33abefd --- /dev/null +++ b/QgisModelBaker/gui/panel/basket_panel.py @@ -0,0 +1,256 @@ +""" +/*************************************************************************** + ------------------- + begin : 20.11.2023 + git sha : :%H$ + copyright : (C) 2023 by Dave Signer + email : david at opengis ch + ***************************************************************************/ + +/*************************************************************************** + * * + * 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. * + * * + ***************************************************************************/ +""" + + +import uuid +from enum import Enum, IntEnum + +from qgis.PyQt.QtCore import QAbstractTableModel, QModelIndex, Qt +from qgis.PyQt.QtWidgets import QAbstractItemView, QHeaderView, QWidget + +import QgisModelBaker.utils.gui_utils as gui_utils +from QgisModelBaker.utils.gui_utils import CheckDelegate + +WIDGET_UI = gui_utils.get_ui_class("basket_panel.ui") + + +class BasketModel(QAbstractTableModel): + """ + ItemModel providing all the baskets, the existing ones and the possible ones in the given dataset. + It provides the topic, the suggested BIDs (t_ili_tid) and the information if it's created already. + As well the option if it should be created (could be extended if it should be deleted when unchecked) + """ + + class Roles(Enum): + EXISTING = Qt.UserRole + 1 + + def __int__(self): + return self.value + + class Columns(IntEnum): + DO_CREATE = 0 + TOPIC = 1 + BID_DOMAIN = 2 + BID_VALUE = 3 + + def __init__(self): + super().__init__() + self.basket_settings = {} + + def columnCount(self, parent): + return len(BasketModel.Columns) + + def rowCount(self, parent): + return len(self.basket_settings.keys()) + + def flags(self, index): + if index.data(int(BasketModel.Roles.EXISTING)): + return Qt.ItemIsSelectable + if index.column() == BasketModel.Columns.DO_CREATE: + return Qt.ItemIsEnabled + if index.column() == BasketModel.Columns.BID_VALUE: + return Qt.ItemIsEditable | Qt.ItemIsEnabled + return Qt.ItemIsSelectable | Qt.ItemIsEnabled + + def index(self, row: int, column: int, parent: QModelIndex = ...) -> QModelIndex: + """ + default override + """ + return super().createIndex(row, column, parent) + + def parent(self, index): + """ + default override + """ + return index + + def headerData(self, section, orientation, role): + if orientation == Qt.Horizontal and role == Qt.DisplayRole: + if section == BasketModel.Columns.DO_CREATE: + return self.tr("Create") + if section == BasketModel.Columns.TOPIC: + return self.tr("Topic") + if section == BasketModel.Columns.BID_DOMAIN: + return self.tr("BID (OID Type)") + if section == BasketModel.Columns.BID_VALUE: + return self.tr("BID Value") + + def data(self, index, role): + if role == int(Qt.DisplayRole) or role == int(Qt.EditRole): + key = list(self.basket_settings.keys())[index.row()] + if index.column() == BasketModel.Columns.DO_CREATE: + return self.basket_settings[key]["create"] + if index.column() == BasketModel.Columns.TOPIC: + return key + if index.column() == BasketModel.Columns.BID_DOMAIN: + return self.basket_settings[key]["bid_domain"] + if index.column() == BasketModel.Columns.BID_VALUE: + return self.basket_settings[key]["bid_value"] + elif role == int(Qt.ToolTipRole): + key = list(self.basket_settings.keys())[index.row()] + if index.column() == BasketModel.Columns.DO_CREATE: + return self.tr("If this basket should be created") + if index.column() == BasketModel.Columns.TOPIC: + return key + if index.column() == BasketModel.Columns.BID_DOMAIN: + message = self.tr( + "

The OID format is not defined, you can use whatever you want, but it should always start with an underscore _ or an alphanumeric value.

" + ) + oid_domain = self.basket_settings[key].get("oid_domain", "") + if oid_domain[-7:] == "UUIDOID": + message = self.tr( + "

The OID should be an Universally Unique Identifier (OID TEXT*36).

" + ) + elif oid_domain[-11:] == "STANDARDOID": + message = self.tr( + """ + +

+ The OID format requireds an 8 char prefix and 8 char postfix. +

+

Prefix (2 + 6 chars): Country identifier + a 'global' identification part assigned once by the official authority.

+

Postfix (8 chars): Sequence (numeric or alphanumeric) of your system as 'local' identification part.

+ + + """ + ) + elif oid_domain[-6:] == "I32OID": + message = self.tr( + "

The OID must be an integer value (OID 0 .. 2147483647).

" + ) + elif oid_domain[-6:] == "ANYOID": + message = self.tr( + "

The OID format could vary depending in what basket the object (entry) is located.

These objects could be in the following topics: {topics}".format( + topics=self.basket_settings[key]["interlis_topic"] + ) + ) + return message + if index.column() == BasketModel.Columns.BID_VALUE: + return self.basket_settings[key]["bid_value"] + elif role == int(BasketModel.Roles.EXISTING): + key = list(self.basket_settings.keys())[index.row()] + return self.basket_settings[key]["existing"] + return None + + def setData(self, index, data, role): + if role == int(Qt.EditRole): + if index.column() == BasketModel.Columns.BID_VALUE: + key = list(self.basket_settings.keys())[index.row()] + self.basket_settings[key]["bid_value"] = data + self.dataChanged.emit(index, index) + if index.column() == BasketModel.Columns.DO_CREATE: + key = list(self.basket_settings.keys())[index.row()] + self.basket_settings[key]["create"] = data + self.dataChanged.emit(index, index) + return True + + def load_basket_config(self, db_connector, dataset): + self.beginResetModel() + self.basket_settings.clear() + for topic_record in db_connector.get_topics_info(): + basket_setting = {} + topic_key = f"{topic_record['model']}.{topic_record['topic']}" + # check if existing + if topic_key in [ + basket_record["topic"] + for basket_record in db_connector.get_baskets_info() + if basket_record["datasetname"] == dataset + ]: + basket_setting["existing"] = True + basket_setting["create"] = True + else: + # if not existing "suggest" create if "relevant" + basket_setting["existing"] = False + basket_setting["create"] = topic_record["relevance"] + # set bid_domain and create suggestion of value + basket_setting["bid_domain"] = topic_record["bid_domain"] + if basket_setting["bid_domain"] == "INTERLIS.UUIDOID": + basket_setting["bid_value"] = uuid.uuid4() + elif basket_setting["bid_domain"] == "INTERLIS.STANDARDOID": + basket_setting["bid_value"] = f"chB00000{self._next_tid_value()}" + elif basket_setting["bid_domain"] == "INTERLIS.I32OID": + basket_setting["bid_value"] = self._next_tid_value() + else: + basket_setting["bid_value"] = f"_{uuid.uuid4()}" + + self.basket_settings[topic_key] = basket_setting + self.endResetModel() + + def _next_tid_value(self): + return 42 + + def save_basket_config(self, db_connector, dataset): + feedbacks = [] + datasets_info = db_connector.get_datasets_info() + dataset_tid = -1 + for dataset_record in datasets_info: + if dataset_record["datasetname"] == dataset: + dataset_tid = dataset_record["t_id"] + break + if dataset_tid < 0: + feedbacks.append((False, self.tr("Dataset needs to be created first."))) + else: + for topic_key in self.basket_settings.keys(): + basket_setting = self.basket_settings[topic_key] + if not basket_setting["existing"] and basket_setting["create"]: + # basket should be created + print(f"create {topic_key}") + status, message = db_connector.create_basket( + dataset_tid, topic_key, basket_setting["bid_value"] + ) + feedbacks.append((status, message)) + return feedbacks + + +class BasketPanel(QWidget, WIDGET_UI): + def __init__(self, parent=None): + QWidget.__init__(self, parent) + self.setupUi(self) + self.parent = parent + self.bid_model = BasketModel() + self.basket_view.setModel(self.bid_model) + + self.basket_view.horizontalHeader().setSectionResizeMode( + BasketModel.Columns.DO_CREATE, QHeaderView.ResizeToContents + ) + self.basket_view.horizontalHeader().setSectionResizeMode( + BasketModel.Columns.TOPIC, QHeaderView.Stretch + ) + self.basket_view.horizontalHeader().setSectionResizeMode( + BasketModel.Columns.BID_DOMAIN, QHeaderView.ResizeToContents + ) + self.basket_view.horizontalHeader().setSectionResizeMode( + BasketModel.Columns.BID_VALUE, QHeaderView.ResizeToContents + ) + + self.basket_view.setItemDelegateForColumn( + BasketModel.Columns.DO_CREATE, + CheckDelegate(self, Qt.EditRole), + ) + self.basket_view.setEditTriggers(QAbstractItemView.AllEditTriggers) + + def load_basket_config(self, db_connector, dataset): + self.bid_model.load_basket_config(db_connector, dataset) + + def save_basket_config(self, db_connector, dataset): + # if a cell is still edited, we need to store it in model by force + index = self.basket_view.currentIndex() + self.basket_view.currentChanged(index, index) + + return self.bid_model.save_basket_config(db_connector, dataset) diff --git a/QgisModelBaker/ui/basket_manager.ui b/QgisModelBaker/ui/basket_manager.ui new file mode 100644 index 000000000..2976fe213 --- /dev/null +++ b/QgisModelBaker/ui/basket_manager.ui @@ -0,0 +1,31 @@ + + + EditDatasetDialog + + + + 0 + 0 + 1082 + 470 + + + + Edit dataset + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + + diff --git a/QgisModelBaker/ui/basket_panel.ui b/QgisModelBaker/ui/basket_panel.ui new file mode 100644 index 000000000..0de501439 --- /dev/null +++ b/QgisModelBaker/ui/basket_panel.ui @@ -0,0 +1,36 @@ + + + basket_panel + + + + 0 + 0 + 797 + 443 + + + + Basket Configuration + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + diff --git a/QgisModelBaker/ui/dataset_manager.ui b/QgisModelBaker/ui/dataset_manager.ui index 1d84a2553..fff9cdbf6 100644 --- a/QgisModelBaker/ui/dataset_manager.ui +++ b/QgisModelBaker/ui/dataset_manager.ui @@ -14,26 +14,6 @@ Dataset Manager - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - @@ -56,12 +36,12 @@ - + - <html><head/><body><p>Creates a <span style=" font-weight:600;">basket</span> per <span style=" font-weight:600;">topic</span> and <span style=" font-weight:600;">dataset </span>in the <span style=" font-style:italic;">t_ili2db_basket</span> table.</p><p>While a dataset is just an entry in the <span style=" font-style:italic;">t_ili2db_dataset</span> table, there must be baskets for each entry that can be selected. Usually there exists only one basket topic and per dataset.</p></body></html> + <html><head/><body><p>To create a <span style=" font-weight:600;">basket</span> per <span style=" font-weight:600;">topic</span> and <span style=" font-weight:600;">dataset </span>in the <span style=" font-style:italic;">t_ili2db_basket</span> table or not.</p><p>While a dataset is just an entry in the <span style=" font-style:italic;">t_ili2db_dataset</span> table, there must be baskets for each entry that can be selected. Usually there exists only one basket topic and per dataset.</p></body></html> - Create baskets for selected dataset + Manage baskets of selected dataset @@ -145,6 +125,13 @@ + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + From 322738193da04714bff501c13adbf3735b4e8eea Mon Sep 17 00:00:00 2001 From: signedav Date: Wed, 22 Nov 2023 14:24:13 +0100 Subject: [PATCH 02/11] Basket create page in Workflow wizard --- QgisModelBaker/gui/panel/session_panel.py | 13 +-- .../workflow_wizard/default_baskets_page.py | 106 ++++++++++++++++++ .../workflow_wizard/project_creation_page.py | 2 +- .../gui/workflow_wizard/workflow_wizard.py | 20 +++- .../ui/workflow_wizard/default_baskets.ui | 87 ++++++++++++++ QgisModelBaker/utils/gui_utils.py | 74 ++++++++++-- 6 files changed, 282 insertions(+), 20 deletions(-) create mode 100644 QgisModelBaker/gui/workflow_wizard/default_baskets_page.py create mode 100644 QgisModelBaker/ui/workflow_wizard/default_baskets.ui diff --git a/QgisModelBaker/gui/panel/session_panel.py b/QgisModelBaker/gui/panel/session_panel.py index 918d864f2..d1794fb8f 100644 --- a/QgisModelBaker/gui/panel/session_panel.py +++ b/QgisModelBaker/gui/panel/session_panel.py @@ -354,7 +354,7 @@ def run(self, edited_command=None): self.progress_bar.setValue(90) - # an user interaction (cancel) here cannot interupt the process, why it's disabled (and enabled again below). This part might come to a seperate page anyway in future. + # an user interaction (cancel) here cannot interupt the process, why it's disabled (and enabled again below). self.setDisabled(True) if ( self.db_action_type == DbActionType.GENERATE @@ -396,16 +396,7 @@ def _create_default_dataset(self): if default_datasets_info_tids: default_dataset_tid = default_datasets_info_tids[0] - if default_dataset_tid is not None: - for topic_record in db_connector.get_topics_info(): - status, message = db_connector.create_basket( - default_dataset_tid, - ".".join([topic_record["model"], topic_record["topic"]]), - ) - self.print_info.emit( - self.tr("- {}").format(message), LogColor.COLOR_INFO - ) - else: + if default_dataset_tid is None: self.print_info.emit( self.tr( "No default dataset created ({}) - do it manually in the dataset manager." diff --git a/QgisModelBaker/gui/workflow_wizard/default_baskets_page.py b/QgisModelBaker/gui/workflow_wizard/default_baskets_page.py new file mode 100644 index 000000000..51d270a21 --- /dev/null +++ b/QgisModelBaker/gui/workflow_wizard/default_baskets_page.py @@ -0,0 +1,106 @@ +""" +/*************************************************************************** + ------------------- + begin : 17.11.2023 + git sha : :%H$ + copyright : (C) 2023 by Dave Signer + email : david at opengis ch + ***************************************************************************/ +/*************************************************************************** + * * + * 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.QtWidgets import QWizardPage + +import QgisModelBaker.libs.modelbaker.utils.db_utils as db_utils +from QgisModelBaker.gui.panel.basket_panel import BasketPanel +from QgisModelBaker.utils import gui_utils +from QgisModelBaker.utils.globals import DEFAULT_DATASETNAME +from QgisModelBaker.utils.gui_utils import LogColor + +PAGE_UI = gui_utils.get_ui_class("workflow_wizard/default_baskets.ui") + + +class DefaultBasketsPage(QWizardPage, PAGE_UI): + def __init__(self, parent, title): + QWizardPage.__init__(self, parent) + + self.workflow_wizard = parent + + self.setupUi(self) + self.setTitle(title) + self.setStyleSheet(gui_utils.DEFAULT_STYLE) + + self.baskets_panel = BasketPanel(self) + self.baskets_layout.addWidget(self.baskets_panel) + + self.create_default_baskets_button.clicked.connect(self._create_default_baskets) + self.skip_button.clicked.connect(self._skip) + + self.db_connector = None + self.is_complete = False + + def isComplete(self): + return self.is_complete + + def setComplete(self, complete): + self.is_complete = complete + self.create_default_baskets_button.setDisabled(complete) + self.skip_button.setDisabled(complete) + self.basket_panel.setDisabled(complete) + self.completeChanged.emit() + + def nextId(self): + return self.workflow_wizard.next_id() + + def restore_configuration(self, configuration): + self.db_connector = db_utils.get_db_connector(configuration) + self.baskets_panel.load_basket_config(self.db_connector, DEFAULT_DATASETNAME) + + def _create_default_baskets(self): + self.progress_bar.setValue(0) + # we store the settings to the db + feedbacks = self.baskets_panel.save_basket_config( + self.db_connector, DEFAULT_DATASETNAME + ) + success = True + for feedback in feedbacks: + if feedback[0]: + # positive + self.workflow_wizard.log_panel.print_info( + feedback[1], LogColor.COLOR_INFO + ) + else: + # negative + self.workflow_wizard.log_panel.print_info( + feedback[1], LogColor.COLOR_FAIL + ) + success = False + + if success: + self.progress_bar.setFormat(self.tr("Default baskets created!")) + self.progress_bar.setValue(100) + self.setStyleSheet(gui_utils.SUCCESS_STYLE) + self.setComplete(True) + else: + self.workflow_wizard.log_panel.print_info(message) + self.progress_bar.setFormat( + self.tr( + "Issues occured. Skip to proceed and fix it in Dataset Manager..." + ) + ) + self.progress_bar.setValue(0) + + def _skip(self): + self.progress_bar.setValue(100) + self.progress_bar.setFormat(self.tr("SKIPPED")) + self.progress_bar.setTextVisible(True) + self.setStyleSheet(gui_utils.INACTIVE_STYLE) + self.setComplete(True) diff --git a/QgisModelBaker/gui/workflow_wizard/project_creation_page.py b/QgisModelBaker/gui/workflow_wizard/project_creation_page.py index 2e94ae094..d4e464e77 100644 --- a/QgisModelBaker/gui/workflow_wizard/project_creation_page.py +++ b/QgisModelBaker/gui/workflow_wizard/project_creation_page.py @@ -63,7 +63,7 @@ def __init__(self, parent, title): self.create_project_button.clicked.connect(self._create_project) - def set_configuration(self, configuration): + def restore_configuration(self, configuration): self.configuration = configuration def _create_project(self): diff --git a/QgisModelBaker/gui/workflow_wizard/workflow_wizard.py b/QgisModelBaker/gui/workflow_wizard/workflow_wizard.py index 3db32c7d8..7265ab190 100644 --- a/QgisModelBaker/gui/workflow_wizard/workflow_wizard.py +++ b/QgisModelBaker/gui/workflow_wizard/workflow_wizard.py @@ -29,6 +29,7 @@ from QgisModelBaker.gui.workflow_wizard.database_selection_page import ( DatabaseSelectionPage, ) +from QgisModelBaker.gui.workflow_wizard.default_baskets_page import DefaultBasketsPage from QgisModelBaker.gui.workflow_wizard.execution_page import ExecutionPage from QgisModelBaker.gui.workflow_wizard.export_data_configuration_page import ( ExportDataConfigurationPage, @@ -150,6 +151,9 @@ def __init__(self, iface, base_config, parent): self._current_page_title(PageIds.ImportSchemaExecution), DbActionType.GENERATE, ) + self.default_baskets_page = DefaultBasketsPage( + self, self._current_page_title(PageIds.DefaultBaskets) + ) self.data_configuration_page = ImportDataConfigurationPage( self, self._current_page_title(PageIds.ImportDataConfiguration) ) @@ -186,6 +190,7 @@ def __init__(self, iface, base_config, parent): ) self.setPage(PageIds.ImportSchemaConfiguration, self.schema_configuration_page) self.setPage(PageIds.ImportSchemaExecution, self.import_schema_execution_page) + self.setPage(PageIds.DefaultBaskets, self.default_baskets_page) self.setPage(PageIds.ImportDataConfiguration, self.data_configuration_page) self.setPage(PageIds.ImportDataExecution, self.import_data_execution_page) self.setPage(PageIds.ProjectCreation, self.project_creation_page) @@ -301,6 +306,12 @@ def next_id(self): self.import_schema_execution_page.setComplete(True) return PageIds.ImportDataConfiguration self.import_schema_execution_page.setComplete(True) + + if self._basket_handling(self.import_schema_configuration): + return PageIds.DefaultBaskets + return PageIds.ProjectCreation + + if self.current_id == PageIds.DefaultBaskets: return PageIds.ProjectCreation if self.current_id == PageIds.ImportDataConfiguration: @@ -364,8 +375,13 @@ def id_changed(self, new_id): self.import_models_model.import_sessions(), ) + if self.current_id == PageIds.DefaultBaskets: + self.default_baskets_page.restore_configuration( + self.import_schema_configuration + ) + if self.current_id == PageIds.ProjectCreation: - self.project_creation_page.set_configuration( + self.project_creation_page.restore_configuration( self.import_schema_configuration ) @@ -443,6 +459,8 @@ def _current_page_title(self, id): return self.tr("Schema Import Configuration") elif id == PageIds.ImportSchemaExecution: return self.tr("Schema Import Sessions") + elif id == PageIds.DefaultBaskets: + return self.tr("Create Baskets for Default Dataset") elif id == PageIds.ImportDataConfiguration: return self.tr("Data Import Configuration") elif id == PageIds.ImportDataExecution: diff --git a/QgisModelBaker/ui/workflow_wizard/default_baskets.ui b/QgisModelBaker/ui/workflow_wizard/default_baskets.ui new file mode 100644 index 000000000..4354b6fc4 --- /dev/null +++ b/QgisModelBaker/ui/workflow_wizard/default_baskets.ui @@ -0,0 +1,87 @@ + + + default_baskets + + + + 0 + 0 + 800 + 700 + + + + Create default Baskets + + + + + + QLayout::SetMaximumSize + + + + + + + + 0 + 0 + + + + + 75 + true + + + + <html><head/><body><p>You need baskets of the default dataset (<code>Baseset</code>) to collect new data in the created schema. </p><p>If you plan to start with the import of existing data, you can skip this step. To create baskets later on, find the <b><i>Dataset Manager</i></b> in the Model Baker Menu.</p></body></html> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + + + + + Create baskets + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0 + + + + + + + Skip this step + + + + + + + + diff --git a/QgisModelBaker/utils/gui_utils.py b/QgisModelBaker/utils/gui_utils.py index 6ac5b1d04..1de62f71d 100644 --- a/QgisModelBaker/utils/gui_utils.py +++ b/QgisModelBaker/utils/gui_utils.py @@ -6,15 +6,25 @@ import xml.etree.ElementTree as CET from enum import Enum, IntEnum +from PyQt5.QtWidgets import QApplication from qgis.PyQt.QtCore import ( + QEvent, QModelIndex, + QRect, QSortFilterProxyModel, QStringListModel, Qt, pyqtSignal, ) from qgis.PyQt.QtGui import QIcon, QStandardItem, QStandardItemModel -from qgis.PyQt.QtWidgets import QCheckBox, QLineEdit, QListView +from qgis.PyQt.QtWidgets import ( + QCheckBox, + QLineEdit, + QListView, + QStyle, + QStyledItemDelegate, + QStyleOptionButton, +) from qgis.PyQt.uic import loadUiType from QgisModelBaker.libs.modelbaker.iliwrapper.ilicache import IliCache @@ -168,12 +178,13 @@ class PageIds: GenerateDatabaseSelection = 4 ImportSchemaConfiguration = 5 ImportSchemaExecution = 6 - ImportDataConfiguration = 7 - ImportDataExecution = 8 - ExportDatabaseSelection = 9 - ExportDataConfiguration = 10 - ExportDataExecution = 11 - ProjectCreation = 12 + DefaultBaskets = 7 + ImportDataConfiguration = 8 + ImportDataExecution = 9 + ExportDatabaseSelection = 10 + ExportDataConfiguration = 11 + ExportDataExecution = 12 + ProjectCreation = 13 class ToppingWizardPageIds: @@ -1107,3 +1118,52 @@ def model_topics(self, schema_identificator): for basket in self.schema_baskets[schema_identificator]: model_topics.add(basket.get("topic", "")) return list(model_topics) + + +class CheckDelegate(QStyledItemDelegate): + def __init__(self, parent, role): + + super().__init__(parent) + + self.role = role + + def editorEvent(self, event, model, option, index): + + if event.type() == QEvent.MouseButtonPress: + + value = index.data(int(self.role)) or False + + model.setData(index, not value, int(self.role)) + + return True + + return super().editorEvent(event, model, option, index) + + def paint(self, painter, option, index): + + opt = QStyleOptionButton() + + opt.rect = option.rect + + center_x = opt.rect.x() + opt.rect.width() / 2 + + center_y = opt.rect.y() + opt.rect.height() / 2 + + checkbox_width = QApplication.style().pixelMetric(QStyle.PM_IndicatorWidth) + + checkbox_height = QApplication.style().pixelMetric(QStyle.PM_IndicatorHeight) + + checkbox_rect = QRect( + int(center_x - checkbox_width / 2), + int(center_y - checkbox_height / 2), + checkbox_width, + checkbox_height, + ) + + opt.rect = checkbox_rect + + value = index.data(int(self.role)) or False + + opt.state |= QStyle.State_On if value else QStyle.State_Off + + QApplication.style().drawControl(QStyle.CE_CheckBox, opt, painter) From 17ddc9d37789e1efe3f520e1a1cc0554f86a21fb Mon Sep 17 00:00:00 2001 From: signedav Date: Wed, 22 Nov 2023 16:16:23 +0100 Subject: [PATCH 03/11] use {t_id} as placeholder --- QgisModelBaker/gui/panel/basket_panel.py | 57 ++++++++++++++---------- QgisModelBaker/ui/basket_panel.ui | 7 +++ QgisModelBaker/utils/gui_utils.py | 16 +++---- 3 files changed, 46 insertions(+), 34 deletions(-) diff --git a/QgisModelBaker/gui/panel/basket_panel.py b/QgisModelBaker/gui/panel/basket_panel.py index ff33abefd..71dd20766 100644 --- a/QgisModelBaker/gui/panel/basket_panel.py +++ b/QgisModelBaker/gui/panel/basket_panel.py @@ -165,35 +165,40 @@ def load_basket_config(self, db_connector, dataset): self.basket_settings.clear() for topic_record in db_connector.get_topics_info(): basket_setting = {} + topic_key = f"{topic_record['model']}.{topic_record['topic']}" # check if existing - if topic_key in [ - basket_record["topic"] - for basket_record in db_connector.get_baskets_info() - if basket_record["datasetname"] == dataset - ]: - basket_setting["existing"] = True - basket_setting["create"] = True - else: - # if not existing "suggest" create if "relevant" - basket_setting["existing"] = False - basket_setting["create"] = topic_record["relevance"] - # set bid_domain and create suggestion of value + existing = False + for basket_record in db_connector.get_baskets_info(): + if ( + basket_record["datasetname"] == dataset + and topic_key == basket_record["topic"] + ): + existing = True + basket_setting["bid_value"] = basket_record["basket_t_ili_tid"] + + # if not existing "suggest" create if "relevant" + basket_setting["existing"] = existing + basket_setting["create"] = existing or topic_record["relevance"] + basket_setting["bid_domain"] = topic_record["bid_domain"] - if basket_setting["bid_domain"] == "INTERLIS.UUIDOID": - basket_setting["bid_value"] = uuid.uuid4() - elif basket_setting["bid_domain"] == "INTERLIS.STANDARDOID": - basket_setting["bid_value"] = f"chB00000{self._next_tid_value()}" - elif basket_setting["bid_domain"] == "INTERLIS.I32OID": - basket_setting["bid_value"] = self._next_tid_value() - else: - basket_setting["bid_value"] = f"_{uuid.uuid4()}" + + if not existing: + # set suggestion of value + if basket_setting["bid_domain"] == "INTERLIS.UUIDOID": + basket_setting["bid_value"] = uuid.uuid4() + elif basket_setting["bid_domain"] == "INTERLIS.STANDARDOID": + basket_setting["bid_value"] = "chB00000{t_id}" + elif basket_setting["bid_domain"] == "INTERLIS.I32OID": + basket_setting["bid_value"] = "{t_id}" + else: + basket_setting["bid_value"] = f"_{uuid.uuid4()}" self.basket_settings[topic_key] = basket_setting self.endResetModel() - def _next_tid_value(self): - return 42 + def _next_tid_value(self, db_connector): + return db_connector.get_next_ili2db_sequence_value() def save_basket_config(self, db_connector, dataset): feedbacks = [] @@ -212,7 +217,11 @@ def save_basket_config(self, db_connector, dataset): # basket should be created print(f"create {topic_key}") status, message = db_connector.create_basket( - dataset_tid, topic_key, basket_setting["bid_value"] + dataset_tid, + topic_key, + basket_setting["bid_value"].format( + t_id=self._next_tid_value(db_connector) + ), ) feedbacks.append((status, message)) return feedbacks @@ -241,7 +250,7 @@ def __init__(self, parent=None): self.basket_view.setItemDelegateForColumn( BasketModel.Columns.DO_CREATE, - CheckDelegate(self, Qt.EditRole), + CheckDelegate(self, Qt.EditRole, BasketModel.Roles.EXISTING), ) self.basket_view.setEditTriggers(QAbstractItemView.AllEditTriggers) diff --git a/QgisModelBaker/ui/basket_panel.ui b/QgisModelBaker/ui/basket_panel.ui index 0de501439..e3f21ecb4 100644 --- a/QgisModelBaker/ui/basket_panel.ui +++ b/QgisModelBaker/ui/basket_panel.ui @@ -29,6 +29,13 @@ + + + + <html><head/><body><p>Use `{t_id}` as placeholder when you want to use the next T_Id sequence value.</body></html> + + + diff --git a/QgisModelBaker/utils/gui_utils.py b/QgisModelBaker/utils/gui_utils.py index 1de62f71d..81aa56938 100644 --- a/QgisModelBaker/utils/gui_utils.py +++ b/QgisModelBaker/utils/gui_utils.py @@ -1121,11 +1121,13 @@ def model_topics(self, schema_identificator): class CheckDelegate(QStyledItemDelegate): - def __init__(self, parent, role): + def __init__(self, parent, role, disable_role=None): super().__init__(parent) self.role = role + # according to this role it can be disabled or enabled + self.disable_role = disable_role def editorEvent(self, event, model, option, index): @@ -1140,30 +1142,24 @@ def editorEvent(self, event, model, option, index): return super().editorEvent(event, model, option, index) def paint(self, painter, option, index): + # don't show option when disabled + if index.data(int(self.disable_role)) if self.disable_role else False: + return opt = QStyleOptionButton() - opt.rect = option.rect - center_x = opt.rect.x() + opt.rect.width() / 2 - center_y = opt.rect.y() + opt.rect.height() / 2 - checkbox_width = QApplication.style().pixelMetric(QStyle.PM_IndicatorWidth) - checkbox_height = QApplication.style().pixelMetric(QStyle.PM_IndicatorHeight) - checkbox_rect = QRect( int(center_x - checkbox_width / 2), int(center_y - checkbox_height / 2), checkbox_width, checkbox_height, ) - opt.rect = checkbox_rect value = index.data(int(self.role)) or False - opt.state |= QStyle.State_On if value else QStyle.State_Off - QApplication.style().drawControl(QStyle.CE_CheckBox, opt, painter) From 34bcf16ee3cf83530d475298cd681c6fe1d48c7b Mon Sep 17 00:00:00 2001 From: signedav Date: Wed, 22 Nov 2023 16:22:51 +0100 Subject: [PATCH 04/11] fix typo --- QgisModelBaker/gui/workflow_wizard/default_baskets_page.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QgisModelBaker/gui/workflow_wizard/default_baskets_page.py b/QgisModelBaker/gui/workflow_wizard/default_baskets_page.py index 51d270a21..981cb5beb 100644 --- a/QgisModelBaker/gui/workflow_wizard/default_baskets_page.py +++ b/QgisModelBaker/gui/workflow_wizard/default_baskets_page.py @@ -54,7 +54,7 @@ def setComplete(self, complete): self.is_complete = complete self.create_default_baskets_button.setDisabled(complete) self.skip_button.setDisabled(complete) - self.basket_panel.setDisabled(complete) + self.baskets_panel.setDisabled(complete) self.completeChanged.emit() def nextId(self): From bac4985caa1c5b039b1a589cfb3a70b6bc77e79e Mon Sep 17 00:00:00 2001 From: signedav Date: Thu, 23 Nov 2023 13:17:14 +0100 Subject: [PATCH 05/11] add tooltip etc --- QgisModelBaker/gui/panel/basket_panel.py | 2 +- QgisModelBaker/ui/basket_manager.ui | 6 +++--- QgisModelBaker/ui/basket_panel.ui | 7 ------- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/QgisModelBaker/gui/panel/basket_panel.py b/QgisModelBaker/gui/panel/basket_panel.py index 71dd20766..b2b244ef4 100644 --- a/QgisModelBaker/gui/panel/basket_panel.py +++ b/QgisModelBaker/gui/panel/basket_panel.py @@ -142,7 +142,7 @@ def data(self, index, role): ) return message if index.column() == BasketModel.Columns.BID_VALUE: - return self.basket_settings[key]["bid_value"] + return "

Use `{t_id}` as placeholder when you want to use the next T_Id sequence value." elif role == int(BasketModel.Roles.EXISTING): key = list(self.basket_settings.keys())[index.row()] return self.basket_settings[key]["existing"] diff --git a/QgisModelBaker/ui/basket_manager.ui b/QgisModelBaker/ui/basket_manager.ui index 2976fe213..9c9237e88 100644 --- a/QgisModelBaker/ui/basket_manager.ui +++ b/QgisModelBaker/ui/basket_manager.ui @@ -1,7 +1,7 @@ - EditDatasetDialog - + BasketManagerDialog + 0 @@ -11,7 +11,7 @@ - Edit dataset + Manage Baskets diff --git a/QgisModelBaker/ui/basket_panel.ui b/QgisModelBaker/ui/basket_panel.ui index e3f21ecb4..0de501439 100644 --- a/QgisModelBaker/ui/basket_panel.ui +++ b/QgisModelBaker/ui/basket_panel.ui @@ -29,13 +29,6 @@ - - - - <html><head/><body><p>Use `{t_id}` as placeholder when you want to use the next T_Id sequence value.</body></html> - - - From 2d2e2c5e63eef06dccbe6b1376a6a8729b751525 Mon Sep 17 00:00:00 2001 From: signedav Date: Thu, 23 Nov 2023 14:30:56 +0100 Subject: [PATCH 06/11] fix wizard page order --- .../gui/workflow_wizard/workflow_wizard.py | 43 ++++++++++++++----- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/QgisModelBaker/gui/workflow_wizard/workflow_wizard.py b/QgisModelBaker/gui/workflow_wizard/workflow_wizard.py index 7265ab190..fd00a591e 100644 --- a/QgisModelBaker/gui/workflow_wizard/workflow_wizard.py +++ b/QgisModelBaker/gui/workflow_wizard/workflow_wizard.py @@ -286,20 +286,25 @@ def next_id(self): self.schema_configuration_page.setComplete(True) if self.current_id == PageIds.ImportSchemaExecution: - # if transfer file available or possible (by getting via UsabILIty Hub) + # if transfer files available, then go to data import + if self.import_data_file_model.rowCount(): + return PageIds.ImportDataConfiguration + + # if basket handling active, go to the create basket + if self._basket_handling(self.import_schema_configuration): + return PageIds.DefaultBaskets + + # if transfer file are possible (by getting via UsabILIty Hub), go to the data import self.log_panel.print_info( self.tr( "Checking for potential referenced data on the repositories (might take a while)..." ) ) self.import_schema_execution_page.setComplete(False) - if ( - self.import_data_file_model.rowCount() - or self.update_referecedata_cache_model( - self._db_modelnames(self.import_data_configuration), - "referenceData", - ).rowCount() - ): + if self.update_referecedata_cache_model( + self._db_modelnames(self.import_data_configuration), + "referenceData", + ).rowCount(): self.log_panel.print_info( self.tr("Potential referenced data found.") ) @@ -307,11 +312,29 @@ def next_id(self): return PageIds.ImportDataConfiguration self.import_schema_execution_page.setComplete(True) - if self._basket_handling(self.import_schema_configuration): - return PageIds.DefaultBaskets + # otherwise, go to project create return PageIds.ProjectCreation if self.current_id == PageIds.DefaultBaskets: + # if transfer file are possible (by getting via UsabILIty Hub), go to the data import + self.log_panel.print_info( + self.tr( + "Checking for potential referenced data on the repositories (might take a while)..." + ) + ) + self.default_baskets_page.setComplete(False) + if self.update_referecedata_cache_model( + self._db_modelnames(self.import_data_configuration), + "referenceData", + ).rowCount(): + self.log_panel.print_info( + self.tr("Potential referenced data found.") + ) + self.default_baskets_page.setComplete(True) + return PageIds.ImportDataConfiguration + self.default_baskets_page.setComplete(True) + + # otherwise, go to project create return PageIds.ProjectCreation if self.current_id == PageIds.ImportDataConfiguration: From 66786eca0b14d5131b451cc8a05a791ea930e82e Mon Sep 17 00:00:00 2001 From: signedav Date: Thu, 23 Nov 2023 14:39:48 +0100 Subject: [PATCH 07/11] basket generation and manager documentations --- docs/assets/dataset_basket_manager.png | Bin 0 -> 83498 bytes .../workflow_wizard_default_baskets_page.png | Bin 0 -> 97587 bytes docs/background_info/basket_handling.md | 34 +++++++++++------- docs/user_guide/import_workflow.md | 13 ++++++- 4 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 docs/assets/dataset_basket_manager.png create mode 100644 docs/assets/workflow_wizard_default_baskets_page.png diff --git a/docs/assets/dataset_basket_manager.png b/docs/assets/dataset_basket_manager.png new file mode 100644 index 0000000000000000000000000000000000000000..1d8d1176c5dcc7f95dd91b744ad8f878c89af675 GIT binary patch literal 83498 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 literal 0 HcmV?d00001 diff --git a/docs/assets/workflow_wizard_default_baskets_page.png b/docs/assets/workflow_wizard_default_baskets_page.png new file mode 100644 index 0000000000000000000000000000000000000000..e90057739c9c1ca175d1cfef67416e7752cba4be GIT binary patch literal 97587 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 aFyifqctKR@XfeDHK~73p^5=Wwfd2z2YQE9{ literal 0 HcmV?d00001 diff --git a/docs/background_info/basket_handling.md b/docs/background_info/basket_handling.md index b381f5381..fe749e7cc 100644 --- a/docs/background_info/basket_handling.md +++ b/docs/background_info/basket_handling.md @@ -74,7 +74,7 @@ The model defines `BASKET OID` this means it requires stable basket ids and here ### Data of Ul Qoma And here are the data from one of the cities (Ul Qoma): -``` +```xml @@ -110,15 +110,20 @@ To have a dataset called "Ul Qoma" selectable, we need to create it in the Datas ![dataset manager](../assets/baskets_dataset_manager.png) #### Creation of Baskets -With the `--update` of the data to a dataset, the needed baskets are created by `ili2db`. In case you create a new dataset and you want to collect fresh data in QGIS (no import of existing data), the baskets have to be created as well by *Create baskets for selected dataset*. +With the `--update` of the data to a dataset, the needed baskets are created by `ili2db`. -!!! Note - When baskets are created by the Model Baker, the IDs are UUIDs. To change the IDs, edit the t_ili2db_basket table manually. +In case you create a new dataset and you want to collect ***fresh*** data in QGIS (no import of existing data), the baskets have to be created as well. Open for that *Manage baskets of selected dataset*. + +![baket_manager](../assets/dataset_basket_manager.png) + +Reasonable BIDs (the value stored in the `t_ili_tid`) values are generated. In this case with UUIDs it's pretty automatic. But in case you use a `STANDARDOID` or user defined OID type for your `BID`, you might need to edit them. For more information about OIDs, BIDs etc. check the [corresponding chapter](../../background_info/oid_tid_generator). ### Update command + After that you can double-click the dataset field and choose "Ul Qoma". This command will be excecuted in the background: -``` + +```bash java -jar /home/freddy/ili2pg-4.6.1.jar --update --dbhost localhost --dbport 5432 --dbusr postgres --dbpwd ****** --dbdatabase freds_bakery --dbschema thecityandthecity --importTid --importBid --dataset "Ul Qoma" /home/freddy/referencedata/TheCity_V1-ulqoma.xtf ``` @@ -127,6 +132,7 @@ As you can see `--importTid` and `--importBid` are automatically added to the co ## Structure in the Database An end user does not need to know that. But it might be interessting to know how it looks like in the database. + ### Dataset and Data of "Ul Qoma" After importing your data of the city "Ul Qoma", there are now these two tables in the database. They look like this: @@ -173,7 +179,7 @@ When we check out the data now, we see that they are referencing the baskets (wh It looks more interesting when we import the data of "Besźel" as well. -``` +```xml @@ -195,7 +201,7 @@ It looks more interesting when we import the data of "Besźel" as well. ``` We create the dataset "Besźel" with the Dataset Manager and update the data with the following command. -``` +```bash java -jar /home/freddy/ili2pg-4.6.1.jar --update --dbhost localhost --dbport 5432 --dbusr postgres --dbpwd ****** --dbdatabase freds_bakery --dbschema thecityandthecity --importTid --importBid --dataset Besźel /home/dave/dev/gh_signedav/usabilitydave/referencedata/TheCity_V1-beszel.xtf ``` @@ -270,13 +276,14 @@ As mentioned before, a table is usually in one topic. This is not true for the d ![dataset relationreference domain](../assets/dataset_relation_reference_domain.png) - ## `BASKET OID` or not It's up to the modeller if the `BASKET OID` should be defined or not. Here it's described how it's handled in the context of the Model Baker. ### Using `BASKET OID` + You can have `BASKET OID` defined in the model. + ``` INTERLIS 2.3; @@ -299,7 +306,7 @@ This ensures that the data can be validated for the proper format of the `BID` a On using basket handling the `BID` is validated and exported: -``` +```xml @@ -312,13 +319,14 @@ On using basket handling the `BID` is validated and exported: When the user decides to use no basket handling, the collected data would not be considered by ili2db (because they are in no basket) and the export will be empty: -``` +```xml ``` + ### Not using `BASKET OID` You can still use the basket handling without having `BASKET OID` defined the model. As [mentioned](../../background_info/basket_handling/#update-command) `--importBid` are automatically added to the command, when the basket handling active. So ili2db assumes that the `BID`s we import are stable. This is not ensured by the model definition, it has to be ensured by the user providing the data. @@ -341,7 +349,7 @@ END Maps_V1. ``` On the export the `BID`s are considered: -``` +```xml @@ -356,7 +364,7 @@ When not having `BASKET OID` defined, it's possible not to use the basket handli But be aware: The `BID`s are not stable. -``` +```xml @@ -401,10 +409,12 @@ END CityMaps_V1. You now add objects, one Map-Object and one City-Object. You work - of course - in the basket of the extended topic (provided by the Dataset Selector of the optimized project). And you export the data: +```xml Ul Qoma Street Map XY +``` Why do the XML element name divert now? diff --git a/docs/user_guide/import_workflow.md b/docs/user_guide/import_workflow.md index 586ee4957..ed1bb2ce3 100644 --- a/docs/user_guide/import_workflow.md +++ b/docs/user_guide/import_workflow.md @@ -42,6 +42,7 @@ In any case you are requested to set the connection to your database. - **Database User** Set the user to access the database. - **User Password** Set the password for the database user. - **Execute data management tasks with superuser login from settings** If checked, it uses the superuser login (set in the [plugin configurations](../plugin_configuration/) for data management tasks like the creation of the schema etc. + ## Import of INTERLIS Model ### Model selection There are several ways the Model Baker wizard detects INTERLIS models to import. @@ -84,7 +85,8 @@ When this option is checked, Model Baker passes `--createBasketCol` to the ili2d !!! Note If `BASKET OID` is defined in the model, it's required to use the basket handling in QGIS (we need to create the physical model the ili2db parameter `--createBasketCol`). This is currently not automatically detected by the Model Baker and needs to be assured by the user. -When the dataset and basket handling is enabled, a default Dataset called `Baseset` will be created and one basket per topic in the INTERLIS model. +When the dataset and basket handling is enabled, a default Dataset called `Baseset` will be created and the [page for basket creation](#create_baskets) will appear after schema import. + ### Stroke Arcs If this option is activated, circular arcs are stroked when importing the data. @@ -103,6 +105,15 @@ In the next step you can run all the sessions to create your physical model. If ![wizard schema import sessions](../assets/workflow_wizard_schema_session.png) With the ![run arrow_button](../assets/arrow_button.png) button next to *Run* the options are provided to run the command without checking constraints or to edit the command manually before running it. + +## Create Baskets + +In case you don't have data to import into your default dataset and want to collect ***fresh*** data in QGIS, the baskets have to be created as well. It's up to you for what topics you want to create baskets. Model Baker suggests you what baskets should be created and reasonalbe values for the BID (value in the `t_ili_tid`) but you might need. to edit them. + +![wizard basket page](../assets/workflow_wizard_default_baskets_page.png) + +If you don't know what it is about, check more details [here](../../background_info/basket_hanlding/#creation_of_baskets) or just press *Create baskets* and then *Next*. + ## Import of INTERLIS Data After the physial model is generated or you selected an existing database to import your transfer or catalogue files to containing the models already, you will see the page to set up your data imports. From e4816fc29efd3ff13203720f9bc51b6360e45c4a Mon Sep 17 00:00:00 2001 From: signedav Date: Fri, 24 Nov 2023 12:22:17 +0100 Subject: [PATCH 08/11] convert uuid to string --- QgisModelBaker/gui/panel/basket_panel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QgisModelBaker/gui/panel/basket_panel.py b/QgisModelBaker/gui/panel/basket_panel.py index b2b244ef4..1d9d31042 100644 --- a/QgisModelBaker/gui/panel/basket_panel.py +++ b/QgisModelBaker/gui/panel/basket_panel.py @@ -186,7 +186,7 @@ def load_basket_config(self, db_connector, dataset): if not existing: # set suggestion of value if basket_setting["bid_domain"] == "INTERLIS.UUIDOID": - basket_setting["bid_value"] = uuid.uuid4() + basket_setting["bid_value"] = str(uuid.uuid4()) elif basket_setting["bid_domain"] == "INTERLIS.STANDARDOID": basket_setting["bid_value"] = "chB00000{t_id}" elif basket_setting["bid_domain"] == "INTERLIS.I32OID": From 523c0f9e3b45809edd6551a31e88ff1c6f07aaf0 Mon Sep 17 00:00:00 2001 From: signedav Date: Fri, 24 Nov 2023 12:42:42 +0100 Subject: [PATCH 09/11] change chB00000 to %change% --- QgisModelBaker/gui/panel/basket_panel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QgisModelBaker/gui/panel/basket_panel.py b/QgisModelBaker/gui/panel/basket_panel.py index 1d9d31042..364c2cd59 100644 --- a/QgisModelBaker/gui/panel/basket_panel.py +++ b/QgisModelBaker/gui/panel/basket_panel.py @@ -188,7 +188,7 @@ def load_basket_config(self, db_connector, dataset): if basket_setting["bid_domain"] == "INTERLIS.UUIDOID": basket_setting["bid_value"] = str(uuid.uuid4()) elif basket_setting["bid_domain"] == "INTERLIS.STANDARDOID": - basket_setting["bid_value"] = "chB00000{t_id}" + basket_setting["bid_value"] = "%change%{t_id}" elif basket_setting["bid_domain"] == "INTERLIS.I32OID": basket_setting["bid_value"] = "{t_id}" else: @@ -220,7 +220,7 @@ def save_basket_config(self, db_connector, dataset): dataset_tid, topic_key, basket_setting["bid_value"].format( - t_id=self._next_tid_value(db_connector) + t_id=f"{self._next_tid_value(db_connector):08}" ), ) feedbacks.append((status, message)) From f072b1ec322a057c4088fc0d1635b02832e2eae7 Mon Sep 17 00:00:00 2001 From: signedav Date: Fri, 24 Nov 2023 12:55:23 +0100 Subject: [PATCH 10/11] style --- QgisModelBaker/utils/gui_utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QgisModelBaker/utils/gui_utils.py b/QgisModelBaker/utils/gui_utils.py index 6187d8e39..6edbd60f8 100644 --- a/QgisModelBaker/utils/gui_utils.py +++ b/QgisModelBaker/utils/gui_utils.py @@ -187,7 +187,7 @@ class PageIds: ProjectCreation = 13 TIDConfiguration = 14 - + class ToppingWizardPageIds: Target = 1 Models = 2 @@ -1142,7 +1142,7 @@ def paint(self, painter, option, index): # don't show option when disabled if index.data(int(self.disable_role)) if self.disable_role else False: return - + opt = QStyleOptionButton() opt.rect = option.rect center_x = opt.rect.x() + opt.rect.width() / 2 From 106024d02c394075ddf7f8201a8f3c8d0263580c Mon Sep 17 00:00:00 2001 From: signedav Date: Fri, 24 Nov 2023 12:55:36 +0100 Subject: [PATCH 11/11] bump to modelbaker 1.6.0 --- scripts/package_pip_packages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/package_pip_packages.sh b/scripts/package_pip_packages.sh index 524cdb1b6..568c5e776 100755 --- a/scripts/package_pip_packages.sh +++ b/scripts/package_pip_packages.sh @@ -1,7 +1,7 @@ #!/bin/bash LIBS_DIR="QgisModelBaker/libs" -MODELBAKER_LIBRARY=("modelbaker" "1.5.1") +MODELBAKER_LIBRARY=("modelbaker" "1.6.0") PACKAGING=("packaging" "21.3") PACKAGES=(