Merge pull request #15279 from netchampfaris/marketplace-fixes-3
- feat: Add disable marketplace option in Hub Settings
- fix: Rename Hub Settings -> Marketplace Settings
diff --git a/erpnext/config/hub_node.py b/erpnext/config/hub_node.py
index c9d5b97..9b9fcc4 100644
--- a/erpnext/config/hub_node.py
+++ b/erpnext/config/hub_node.py
@@ -8,16 +8,16 @@
"items": [
{
"type": "doctype",
- "name": "Hub Settings"
+ "name": "Marketplace Settings"
},
]
},
{
- "label": _("Hub"),
+ "label": _("Marketplace"),
"items": [
{
"type": "page",
- "name": "hub"
+ "name": "marketplace/home"
},
]
},
diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index 0ebbec7..85ffe29 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -6,12 +6,12 @@
@frappe.whitelist()
def enable_hub():
- hub_settings = frappe.get_doc('Hub Settings')
+ hub_settings = frappe.get_doc('Marketplace Settings')
hub_settings.register()
frappe.db.commit()
return hub_settings
@frappe.whitelist()
def sync():
- hub_settings = frappe.get_doc('Hub Settings')
+ hub_settings = frappe.get_doc('Marketplace Settings')
hub_settings.sync()
diff --git a/erpnext/hub_node/api.py b/erpnext/hub_node/api.py
index 2a05dd2..fe41919 100644
--- a/erpnext/hub_node/api.py
+++ b/erpnext/hub_node/api.py
@@ -24,7 +24,7 @@
field_mappings = get_field_mappings()
table_fields = [d.fieldname for d in frappe.get_meta('Item').get_table_fields()]
- hub_seller = frappe.db.get_value('Hub Settings' , 'Hub Settings', 'company_email')
+ hub_seller = frappe.db.get_value('Marketplace Settings' , 'Marketplace Settings', 'company_email')
for item in items:
for fieldname in table_fields:
@@ -106,7 +106,7 @@
})
if response:
- frappe.db.set_value("Hub Settings", "Hub Settings", "sync_in_progress", 1)
+ frappe.db.set_value("Marketplace Settings", "Marketplace Settings", "sync_in_progress", 1)
return response
else:
frappe.throw('Unable to update remote activity')
@@ -114,11 +114,11 @@
def item_sync_postprocess():
response = call_hub_method('post_items_publish', {})
if response:
- frappe.db.set_value('Hub Settings', 'Hub Settings', 'last_sync_datetime', frappe.utils.now())
+ frappe.db.set_value('Marketplace Settings', 'Marketplace Settings', 'last_sync_datetime', frappe.utils.now())
else:
frappe.throw('Unable to update remote activity')
- frappe.db.set_value('Hub Settings', 'Hub Settings', 'sync_in_progress', 0)
+ frappe.db.set_value('Marketplace Settings', 'Marketplace Settings', 'sync_in_progress', 0)
def load_base64_image_from_items(items):
@@ -162,7 +162,7 @@
# read-only connection
if read_only:
- hub_url = frappe.db.get_single_value('Hub Settings', 'hub_url')
+ hub_url = frappe.db.get_single_value('Marketplace Settings', 'hub_url')
hub_connection = FrappeClient(hub_url)
return hub_connection
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.js b/erpnext/hub_node/doctype/hub_settings/hub_settings.js
deleted file mode 100644
index 089f499..0000000
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.js
+++ /dev/null
@@ -1,3 +0,0 @@
-frappe.ui.form.on("Hub Settings", {
- onload_post_render: function() {},
-});
diff --git a/erpnext/hub_node/doctype/hub_settings/test_hub_settings.js b/erpnext/hub_node/doctype/hub_settings/test_hub_settings.js
deleted file mode 100644
index 546ce15..0000000
--- a/erpnext/hub_node/doctype/hub_settings/test_hub_settings.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable */
-// rename this file from _test_[name] to test_[name] to activate
-// and remove above this line
-
-QUnit.test("test: Hub Settings", function (assert) {
- let done = assert.async();
-
- // number of asserts
- assert.expect(1);
-
- frappe.run_serially('Hub Settings', [
- // insert a new Hub Settings
- () => frappe.tests.make([
- // values to be set
- {key: 'value'}
- ]),
- () => {
- assert.equal(cur_frm.doc.key, 'value');
- },
- () => done()
- ]);
-
-});
diff --git a/erpnext/hub_node/doctype/hub_settings/test_hub_settings.py b/erpnext/hub_node/doctype/hub_settings/test_hub_settings.py
deleted file mode 100644
index 1299adc..0000000
--- a/erpnext/hub_node/doctype/hub_settings/test_hub_settings.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-from __future__ import unicode_literals
-
-import frappe
-import unittest
-
-class TestHubSettings(unittest.TestCase):
- pass
diff --git a/erpnext/hub_node/doctype/hub_settings/__init__.py b/erpnext/hub_node/doctype/marketplace_settings/__init__.py
similarity index 100%
rename from erpnext/hub_node/doctype/hub_settings/__init__.py
rename to erpnext/hub_node/doctype/marketplace_settings/__init__.py
diff --git a/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.js b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.js
new file mode 100644
index 0000000..36da832
--- /dev/null
+++ b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.js
@@ -0,0 +1,8 @@
+// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Marketplace Settings', {
+ refresh: function(frm) {
+ $('#toolbar-user .marketplace-link').toggle(!frm.doc.disable_marketplace);
+ },
+});
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.json b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.json
similarity index 94%
rename from erpnext/hub_node/doctype/hub_settings/hub_settings.json
rename to erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.json
index e230515..febb549 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.json
+++ b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.json
@@ -4,13 +4,14 @@
"allow_import": 0,
"allow_rename": 0,
"beta": 1,
- "creation": "2015-02-18 00:59:34.560476",
+ "creation": "2018-08-31 15:54:38.795263",
"custom": 0,
"description": "",
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 0,
+ "engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
@@ -19,8 +20,73 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fieldname": "disable_marketplace",
+ "fieldtype": "Check",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Disable Marketplace",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.disable_marketplace",
+ "fieldname": "marketplace_settings_section",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Marketplace Settings",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
"default": "https://hubmarket.org",
- "fieldname": "hub_url",
+ "fieldname": "marketplace_url",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -29,7 +95,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Hub URL",
+ "label": "Marketplace URL",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -86,7 +152,7 @@
"columns": 0,
"fieldname": "sync_in_progress",
"fieldtype": "Check",
- "hidden": 0,
+ "hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
@@ -401,72 +467,6 @@
"set_only_once": 0,
"translatable": 0,
"unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "",
- "columns": 0,
- "depends_on": "enabled",
- "fieldname": "unregister_section",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Unregister",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "unregister_from_hub",
- "fieldtype": "Button",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Unregister from Hub",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
}
],
"has_web_view": 0,
@@ -479,12 +479,12 @@
"issingle": 1,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-08-29 17:46:30.413159",
- "modified_by": "Administrator",
+ "modified": "2018-08-31 15:54:38.795263",
+ "modified_by": "netchamp@rawcoderz.com",
"module": "Hub Node",
- "name": "Hub Settings",
+ "name": "Marketplace Settings",
"name_case": "",
- "owner": "Administrator",
+ "owner": "netchamp@rawcoderz.com",
"permissions": [
{
"amend": 0,
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.py
similarity index 83%
rename from erpnext/hub_node/doctype/hub_settings/hub_settings.py
rename to erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.py
index ab0a7d2..9b83898 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py
+++ b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors
+# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
@@ -10,15 +10,13 @@
from erpnext.utilities.product import get_price, get_qty_in_stock
from six import string_types
-class HubSetupError(frappe.ValidationError): pass
-
-class HubSettings(Document):
+class MarketplaceSettings(Document):
def validate(self):
self.site_name = frappe.utils.get_url()
- def get_hub_url(self):
- return self.hub_url
+ def get_marketplace_url(self):
+ return self.marketplace_url
def register(self):
""" Create a User on hub.erpnext.org and return username/password """
@@ -34,7 +32,7 @@
data = {
'profile': self.as_json()
}
- post_url = self.get_hub_url() + '/api/method/hub.hub.api.register'
+ post_url = self.get_marketplace_url() + '/api/method/hub.hub.api.register'
response = requests.post(post_url, data=data, headers = {'accept': 'application/json'})
@@ -68,7 +66,7 @@
def create_hub_connector(self, message):
if frappe.db.exists('Data Migration Connector', 'Hub Connector'):
hub_connector = frappe.get_doc('Data Migration Connector', 'Hub Connector')
- hub_connector.hostname = self.get_hub_url()
+ hub_connector.hostname = self.get_marketplace_url()
hub_connector.username = message['email']
hub_connector.password = message['password']
hub_connector.save()
@@ -78,19 +76,19 @@
'doctype': 'Data Migration Connector',
'connector_type': 'Frappe',
'connector_name': 'Hub Connector',
- 'hostname': self.get_hub_url(),
+ 'hostname': self.get_marketplace_url(),
'username': message['email'],
'password': message['password']
}).insert()
def reset_hub_publishing_settings(last_sync_datetime = ""):
- doc = frappe.get_doc("Hub Settings", "Hub Settings")
+ doc = frappe.get_doc("Marketplace Settings", "Marketplace Settings")
doc.reset_publishing_settings(last_sync_datetime)
doc.in_callback = 1
doc.save()
def reset_hub_settings(last_sync_datetime = ""):
- doc = frappe.get_doc("Hub Settings", "Hub Settings")
+ doc = frappe.get_doc("Marketplace Settings", "Marketplace Settings")
doc.reset_publishing_settings(last_sync_datetime)
doc.reset_enable()
doc.in_callback = 1
@@ -99,7 +97,7 @@
@frappe.whitelist()
def register_seller(**kwargs):
- settings = frappe.get_doc('Hub Settings')
+ settings = frappe.get_doc('Marketplace Settings')
settings.update(kwargs)
message = settings.register()
diff --git a/erpnext/hub_node/legacy.py b/erpnext/hub_node/legacy.py
index 7218d3f..9daee27 100644
--- a/erpnext/hub_node/legacy.py
+++ b/erpnext/hub_node/legacy.py
@@ -101,7 +101,7 @@
'doctype': 'Request for Quotation',
'transaction_date': nowdate(),
'status': 'Draft',
- 'company': frappe.db.get_single_value('Hub Settings', 'company'),
+ 'company': frappe.db.get_single_value('Marketplace Settings', 'company'),
'message_for_supplier': 'Please supply the specified items at the best possible rates',
'suppliers': [
{ 'supplier': supplier.name, 'contact': contact.name }
@@ -126,8 +126,8 @@
# Make Hub Message on Hub with lead data
doc = {
'doctype': 'Lead',
- 'lead_name': frappe.db.get_single_value('Hub Settings', 'company'),
- 'email_id': frappe.db.get_single_value('Hub Settings', 'user')
+ 'lead_name': frappe.db.get_single_value('Marketplace Settings', 'company'),
+ 'email_id': frappe.db.get_single_value('Marketplace Settings', 'user')
}
args = frappe._dict(dict(
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 358c072..1af75e8 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -560,6 +560,6 @@
erpnext.patches.v11_0.add_expense_claim_default_account
execute:frappe.delete_doc("Page", "hub")
erpnext.patches.v11_0.reset_publish_in_hub_for_all_items
-erpnext.patches.v11_0.update_hub_url
+erpnext.patches.v11_0.update_hub_url # 2018-08-31
erpnext.patches.v10_0.set_discount_amount
erpnext.patches.v10_0.recalculate_gross_margin_for_project
diff --git a/erpnext/patches/v11_0/update_hub_url.py b/erpnext/patches/v11_0/update_hub_url.py
index ced2aaf..abddfd6 100644
--- a/erpnext/patches/v11_0/update_hub_url.py
+++ b/erpnext/patches/v11_0/update_hub_url.py
@@ -1,5 +1,5 @@
import frappe
def execute():
- frappe.reload_doc('hub_node', 'doctype', 'Hub Settings')
- frappe.db.set_value('Hub Settings', 'Hub Settings', 'hub_url', 'https://hubmarket.org')
+ frappe.reload_doc('hub_node', 'doctype', 'Marketplace Settings')
+ frappe.db.set_value('Marketplace Settings', 'Marketplace Settings', 'hub_url', 'https://hubmarket.org')
diff --git a/erpnext/public/js/hub/hub_factory.js b/erpnext/public/js/hub/hub_factory.js
index 57f27f9..506d374 100644
--- a/erpnext/public/js/hub/hub_factory.js
+++ b/erpnext/public/js/hub/hub_factory.js
@@ -2,12 +2,20 @@
frappe.views.marketplaceFactory = class marketplaceFactory extends frappe.views.Factory {
show() {
- if (frappe.pages.marketplace) {
- frappe.container.change_to('marketplace');
- erpnext.hub.marketplace.refresh();
- } else {
- this.make('marketplace');
- }
+ is_marketplace_disabled()
+ .then(disabled => {
+ if (disabled) {
+ frappe.show_not_found('Marketplace');
+ return;
+ }
+
+ if (frappe.pages.marketplace) {
+ frappe.container.change_to('marketplace');
+ erpnext.hub.marketplace.refresh();
+ } else {
+ this.make('marketplace');
+ }
+ });
}
make(page_name) {
@@ -23,10 +31,22 @@
}
};
+function is_marketplace_disabled() {
+ return frappe.model.with_doc('Marketplace Settings')
+ .then(doc => doc.disable_marketplace);
+}
+
$(document).on('toolbar_setup', () => {
$('#toolbar-user .navbar-reload').after(`
<li>
- <a href="#marketplace/home">${__('Marketplace')}
+ <a class="marketplace-link" href="#marketplace/home">${__('Marketplace')}
</li>
`);
+
+ is_marketplace_disabled()
+ .then(disabled => {
+ if (disabled) {
+ $('#toolbar-user .marketplace-link').hide();
+ }
+ });
});
diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js
index cdf3d23..e062c6a 100644
--- a/erpnext/public/js/hub/marketplace.js
+++ b/erpnext/public/js/hub/marketplace.js
@@ -20,20 +20,19 @@
this.$parent = $(parent);
this.page = parent.page;
- frappe.db.get_doc('Hub Settings')
- .then(doc => {
- hub.settings = doc;
- const is_registered = hub.settings.registered;
- const is_registered_seller = hub.settings.company_email === frappe.session.user;
- this.setup_header();
- this.make_sidebar();
- this.make_body();
- this.setup_events();
- this.refresh();
- if (!is_registered && !is_registered_seller && frappe.user_roles.includes('System Manager')) {
- this.page.set_primary_action('Become a Seller', this.show_register_dialog.bind(this))
- }
- });
+ frappe.model.with_doc('Marketplace Settings').then(doc => {
+ hub.settings = doc;
+ const is_registered = hub.settings.registered;
+ const is_registered_seller = hub.settings.company_email === frappe.session.user;
+ this.setup_header();
+ this.make_sidebar();
+ this.make_body();
+ this.setup_events();
+ this.refresh();
+ if (!is_registered && !is_registered_seller && frappe.user_roles.includes('System Manager')) {
+ this.page.set_primary_action('Become a Seller', this.show_register_dialog.bind(this))
+ }
+ });
}
setup_header() {
@@ -78,7 +77,7 @@
erpnext.hub.on('seller-registered', () => {
this.page.clear_primary_action()
- frappe.db.get_doc('Hub Settings').then((doc)=> {
+ frappe.model.with_doc('Marketplace Settings').then((doc)=> {
hub.settings = doc;
});
});
diff --git a/erpnext/public/js/hub/pages/Publish.vue b/erpnext/public/js/hub/pages/Publish.vue
index b05f12a..735f2b9 100644
--- a/erpnext/public/js/hub/pages/Publish.vue
+++ b/erpnext/public/js/hub/pages/Publish.vue
@@ -138,7 +138,7 @@
)
.then((r) => {
this.selected_items = [];
- return frappe.db.get_doc('Hub Settings');
+ return frappe.db.get_doc('Marketplace Settings');
})
.then(doc => {
hub.settings = doc;