From 2ec5f0654af90b9660b58798d7478de5c6a90844 Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Tue, 20 Apr 2021 10:03:13 +0200 Subject: [PATCH] =?UTF-8?q?add=20warning=20when=20a=20value=20re=C3=83lati?= =?UTF-8?q?on=20has=20no=20layer=20set=20(#233)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- qfieldsync/core/offline_converter.py | 8 ++++++++ qfieldsync/gui/package_dialog.py | 1 + 2 files changed, 9 insertions(+) diff --git a/qfieldsync/core/offline_converter.py b/qfieldsync/core/offline_converter.py index 563b1d72..6629fcec 100644 --- a/qfieldsync/core/offline_converter.py +++ b/qfieldsync/core/offline_converter.py @@ -50,6 +50,7 @@ QgsProviderMetadata, QgsEditorWidgetSetup ) + import qgis @@ -57,6 +58,7 @@ class OfflineConverter(QObject): progressStopped = pyqtSignal() task_progress_updated = pyqtSignal(int, int) total_progress_updated = pyqtSignal(int, int, str) + message_emitted = pyqtSignal(str, Qgis.MessageLevel) def __init__(self, project, export_folder, extent, offline_editing): super(OfflineConverter, self).__init__(parent=None) @@ -259,6 +261,12 @@ def convert(self): if ews.type() == 'ValueRelation': widget_config = ews.config() online_layer_id = widget_config['Layer'] + if not online_layer_id: + self.message_emitted.emit( + f'For field "{field.name()}" in layer "{layer.name()}", the value relation widget has no layer set', + Qgis.MessageLevel.Warning + ) + continue if project.mapLayer(online_layer_id): continue diff --git a/qfieldsync/gui/package_dialog.py b/qfieldsync/gui/package_dialog.py index c971c766..365d7d07 100644 --- a/qfieldsync/gui/package_dialog.py +++ b/qfieldsync/gui/package_dialog.py @@ -119,6 +119,7 @@ def package_project(self): # progress connections offline_convertor.total_progress_updated.connect(self.update_total) offline_convertor.task_progress_updated.connect(self.update_task) + offline_convertor.message_emitted.connect(lambda message, level: self.iface.messageBar().pushMessage('QFieldSync', message, level)) offline_convertor.convert() self.do_post_offline_convert_action()