Merge pull request #29729 from resilient-tech/allow_regional

fix: allow `regional_overrides` hook to be set in subsequent apps
This commit is contained in:
Saqib Ansari 2022-02-12 12:05:25 +05:30 committed by GitHub
commit ef971e160a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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):