fix: allow regional_overrides hook to be set in subsequent apps

This commit is contained in:
Sagar Vora 2022-02-09 16:56:24 +05:30
parent b35b637d01
commit b68a99675d

View File

@ -2,8 +2,6 @@ import inspect
import frappe
from erpnext.hooks import regional_overrides
__version__ = '14.0.0-dev'
def get_default_company(user=None):
@ -121,14 +119,17 @@ def allow_regional(fn):
@erpnext.allow_regional
def myfunction():
pass'''
def caller(*args, **kwargs):
region = get_region()
fn_name = inspect.getmodule(fn).__name__ + '.' + fn.__name__
if region in regional_overrides and fn_name in regional_overrides[region]:
return frappe.get_attr(regional_overrides[region][fn_name])(*args, **kwargs)
else:
overrides = frappe.get_hooks("regional_overrides", {}).get(get_region())
function_path = f"{inspect.getmodule(fn).__name__}.{fn.__name__}"
if not overrides or function_path not in overrides:
return fn(*args, **kwargs)
# Priority given to last installed app
return frappe.get_attr(overrides[function_path][-1])(*args, **kwargs)
return caller
def get_last_membership(member):