瀏覽代碼

Run Method, call hook methods even if method does not exist in controller

version-14
Anand Doshi 11 年之前
父節點
當前提交
521ea1a7ac
共有 2 個文件被更改,包括 6 次插入2 次删除
  1. +1
    -0
      frappe/model/base_document.py
  2. +5
    -2
      frappe/model/document.py

+ 1
- 0
frappe/model/base_document.py 查看文件

@@ -267,6 +267,7 @@ class BaseDocument(object):


docname = self.get(df.fieldname) docname = self.get(df.fieldname)
if docname: if docname:
# MySQL is case insensitive. Preserve case of the original docname in the Link Field.
value = frappe.db.get_value(doctype, docname) value = frappe.db.get_value(doctype, docname)
setattr(self, df.fieldname, value) setattr(self, df.fieldname, value)
if docname and not value: if docname and not value:


+ 5
- 2
frappe/model/document.py 查看文件

@@ -371,8 +371,11 @@ class Document(BaseDocument):
"""run standard triggers, plus those in frappe""" """run standard triggers, plus those in frappe"""
if hasattr(self, method): if hasattr(self, method):
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs) fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
fn.__name__ = method.encode("utf-8")
return Document.hook(fn)(self, *args, **kwargs)
else:
fn = lambda self, *args, **kwargs: None

fn.__name__ = method.encode("utf-8")
return Document.hook(fn)(self, *args, **kwargs)


def submit(self): def submit(self):
self.docstatus = 1 self.docstatus = 1


Loading…
取消
儲存