diff --git a/erpnext/__init__.py b/erpnext/__init__.py index ee476f41e20..e23df3a63e5 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -7,7 +7,7 @@ import frappe from erpnext.hooks import regional_overrides -__version__ = '13.11.0' +__version__ = '13.11.1' def get_default_company(user=None): '''Get default company for user''' diff --git a/erpnext/e_commerce/redisearch.py b/erpnext/e_commerce/redisearch.py index 5cfb5ae2920..59c7f32fd46 100644 --- a/erpnext/e_commerce/redisearch.py +++ b/erpnext/e_commerce/redisearch.py @@ -20,14 +20,16 @@ def get_indexable_web_fields(): return [df.fieldname for df in valid_fields] def is_search_module_loaded(): - cache = frappe.cache() - out = cache.execute_command('MODULE LIST') + try: + cache = frappe.cache() + out = cache.execute_command('MODULE LIST') - parsed_output = " ".join( - (" ".join([s.decode() for s in o if not isinstance(s, int)]) for o in out) - ) - - return "search" in parsed_output + parsed_output = " ".join( + (" ".join([s.decode() for s in o if not isinstance(s, int)]) for o in out) + ) + return "search" in parsed_output + except Exception: + return False def if_redisearch_loaded(function): "Decorator to check if Redisearch is loaded." diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 6c1d5f9898e..d4f5cb85ceb 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -864,7 +864,9 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ if (r.message) { me.frm.set_value("billing_address", r.message); } else { - me.frm.set_value("company_address", ""); + if (frappe.meta.get_docfield(me.frm.doctype, 'company_address')) { + me.frm.set_value("company_address", ""); + } } } }); diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js index ee8a516a148..e1cef614a22 100755 --- a/erpnext/public/js/utils.js +++ b/erpnext/public/js/utils.js @@ -714,12 +714,15 @@ erpnext.utils.map_current_doc = function(opts) { child_columns: opts.child_columns, action: function(selections, args) { let values = selections; - if(values.length === 0){ + if (values.length === 0) { frappe.msgprint(__("Please select {0}", [opts.source_doctype])) return; } opts.source_name = values; - opts.args = args; + if (opts.allow_child_item_selection) { + // args contains filtered child docnames + opts.args = args; + } d.dialog.hide(); _map(); }, diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index 2569c04251c..cf98b19e7a1 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -272,8 +272,9 @@ def update_status(name, status): material_request.update_status(status) @frappe.whitelist() -def make_purchase_order(source_name, target_doc=None, args={}): - +def make_purchase_order(source_name, target_doc=None, args=None): + if args is None: + args = {} if isinstance(args, string_types): args = json.loads(args)