diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py index 61676ad7f72..f3a00984af9 100644 --- a/erpnext/hub_node/__init__.py +++ b/erpnext/hub_node/__init__.py @@ -73,18 +73,14 @@ def publish_selected_items(items_to_publish): if not len(items_to_publish): return - # TODO: sync - # for item_code in items_to_publish: - # frappe.db.set_value('Item', item_code, 'publish_in_hub', 1) - - # hub_settings = frappe.get_doc('Hub Settings') - # remote_id = item_sync_preprocess() - # hub_settings.sync(remote_id) - - # return remote_id + for item_code in items_to_publish: + frappe.db.set_value('Item', item_code, 'publish_in_hub', 1) hub_settings = frappe.get_doc('Hub Settings') - hub_settings.sync('TEST') + remote_id = item_sync_preprocess() + hub_settings.sync(remote_id) + + return remote_id def item_sync_preprocess(): # Call Hub to make a new activity diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/hub_settings/hub_settings.py index 727ad627c76..81264dd90e9 100644 --- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py +++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py @@ -41,27 +41,8 @@ class HubSettings(Document): 'trigger_name': 'items-sync' }).insert() - time.sleep(2) - frappe.publish_realtime('items-sync', {"progress_percent": 20}) - print("=======================") - - time.sleep(2) - frappe.publish_realtime('items-sync', {"progress_percent": 40}) - print("=======================") - - time.sleep(1) - frappe.publish_realtime('items-sync', {"progress_percent": 80}) - print("=======================") - - time.sleep(2) - frappe.publish_realtime('items-sync', {"progress_percent": 100}) - print("=======================") - - frappe.db.set_value('Hub Settings', 'Hub Settings', 'last_sync_datetime', frappe.utils.now()) - - # TODO: sync - # self.sync_in_progress = 1 - # doc.run() + self.sync_in_progress = 1 + doc.run() else: frappe.throw("No remote ID specified") diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js index 703da1f8eef..543a0b3dbbf 100644 --- a/erpnext/public/js/hub/marketplace.js +++ b/erpnext/public/js/hub/marketplace.js @@ -832,7 +832,7 @@ erpnext.hub.Publish = class Publish extends SubPage { frappe.realtime.on("items-sync", (data) => { this.$wrapper.find('.progress-bar').css('width', data.progress_percent+'%'); - if(data.progress_percent === 100) { + if(data.progress_percent === 100 || data.progress_percent === '100') { setTimeout(() => { hub.settings.sync_in_progress = 0; frappe.db.get_doc('Hub Settings') @@ -1039,13 +1039,7 @@ erpnext.hub.Publish = class Publish extends SubPage { }); this.items_to_publish = items_to_publish; - return frappe.db.set_value("Hub Settings", "Hub Settings", { - custom_data: JSON.stringify(items_to_publish), - // TODO: sync - // sync_in_progress: 1 - }).then(() => { - hub.settings.sync_in_progress = 1; - }) + return this.set_sync(items_to_publish) .then(frappe.call( 'erpnext.hub_node.publish_selected_items', { @@ -1053,6 +1047,22 @@ erpnext.hub.Publish = class Publish extends SubPage { } )); } + + set_sync(items_to_publish) { + hub.settings.sync_in_progress = 1; + return frappe.db.set_value("Hub Settings", "Hub Settings", { + custom_data: JSON.stringify(items_to_publish), + sync_in_progress: 1 + }) + } + + reset_sync() { + hub.settings.sync_in_progress = 0; + return frappe.db.set_value("Hub Settings", "Hub Settings", { + custom_data: '', + sync_in_progress: 0 + }) + } } erpnext.hub.PublishedProducts = class PublishedProducts extends SubPage {