From 46df72d55dfecc54b6e93e545e6e2f2b0b5d7b9a Mon Sep 17 00:00:00 2001 From: Prateeksha Singh Date: Mon, 30 Jul 2018 13:24:01 +0530 Subject: [PATCH] [hub] test progress trigger --- erpnext/hub_node/__init__.py | 17 ++++++---- .../doctype/hub_settings/hub_settings.json | 6 ++-- .../doctype/hub_settings/hub_settings.py | 27 ++++++++++++--- erpnext/public/js/hub/marketplace.js | 34 ++++++++++++++----- 4 files changed, 62 insertions(+), 22 deletions(-) diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py index 6ac0aba626..61676ad7f7 100644 --- a/erpnext/hub_node/__init__.py +++ b/erpnext/hub_node/__init__.py @@ -73,14 +73,18 @@ def publish_selected_items(items_to_publish): if not len(items_to_publish): return - for item_code in items_to_publish: - frappe.db.set_value('Item', item_code, 'publish_in_hub', 1) + # 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 hub_settings = frappe.get_doc('Hub Settings') - remote_id = item_sync_preprocess() - hub_settings.sync(remote_id) - - return remote_id + hub_settings.sync('TEST') def item_sync_preprocess(): # Call Hub to make a new activity @@ -108,6 +112,7 @@ def item_sync_postprocess(obj): if response: frappe.db.set_value('Hub Settings', 'Hub Settings', 'sync_in_progress', 0) + frappe.db.set_value('Hub Settings', 'Hub Settings', 'last_sync_datetime', frappe.utils.now()) else: frappe.throw('Unable to update remote activity') diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.json b/erpnext/hub_node/doctype/hub_settings/hub_settings.json index 10bb959dff..a0d8188d44 100644 --- a/erpnext/hub_node/doctype/hub_settings/hub_settings.json +++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.json @@ -538,7 +538,7 @@ "bold": 0, "collapsible": 0, "columns": 0, - "depends_on": "publish", + "depends_on": "", "fieldname": "last_sync_datetime", "fieldtype": "Datetime", "hidden": 0, @@ -555,7 +555,7 @@ "precision": "", "print_hide": 0, "print_hide_if_no_value": 0, - "read_only": 1, + "read_only": 0, "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, @@ -675,7 +675,7 @@ "issingle": 1, "istable": 0, "max_attachments": 0, - "modified": "2018-07-30 08:01:09.024358", + "modified": "2018-07-30 10:43:28.818498", "modified_by": "Administrator", "module": "Hub Node", "name": "Hub Settings", diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/hub_settings/hub_settings.py index 66dd560388..727ad627c7 100644 --- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py +++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py @@ -37,12 +37,31 @@ class HubSettings(Document): 'doctype': 'Data Migration Run', 'data_migration_plan': 'Hub Sync', 'data_migration_connector': 'Hub Connector', - 'remote_id': remote_id + 'remote_id': remote_id, + 'trigger_name': 'items-sync' }).insert() - self.sync_in_progress = 1 - # time.sleep(10) - doc.run() + 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() else: frappe.throw("No remote ID specified") diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js index 28309f3caf..703da1f8ee 100644 --- a/erpnext/public/js/hub/marketplace.js +++ b/erpnext/public/js/hub/marketplace.js @@ -828,6 +828,21 @@ erpnext.hub.Publish = class Publish extends SubPage { this.items_to_publish = []; this.unpublished_items = []; this.fetched_items = []; + + frappe.realtime.on("items-sync", (data) => { + this.$wrapper.find('.progress-bar').css('width', data.progress_percent+'%'); + + if(data.progress_percent === 100) { + setTimeout(() => { + hub.settings.sync_in_progress = 0; + frappe.db.get_doc('Hub Settings') + .then(doc => { + hub.settings = doc; + this.refresh(); + }); + }, 500); + } + }); } refresh() { @@ -853,8 +868,8 @@ erpnext.hub.Publish = class Publish extends SubPage { this.setup_publishing_events(); - if(hub.settings.last_sync) { - this.show_message(`Last sync was ${hub.settings.last_sync}. + if(hub.settings.last_sync_datetime) { + this.show_message(`Last sync was ${hub.settings.last_sync_datetime}. See your Published Products.`); } @@ -962,7 +977,7 @@ erpnext.hub.Publish = class Publish extends SubPage { const $publish_progress = $(`

${__(`Syncing ${items_to_publish.length} Products`)}

-
+
`); @@ -1026,16 +1041,17 @@ erpnext.hub.Publish = class Publish extends SubPage { 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; }) - // .then(frappe.call( - // 'erpnext.hub_node.publish_selected_items', - // { - // items_to_publish: item_codes_to_publish - // } - // )); + .then(frappe.call( + 'erpnext.hub_node.publish_selected_items', + { + items_to_publish: item_codes_to_publish + } + )); } }