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()