Переглянути джерело

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)
if docname:
# MySQL is case insensitive. Preserve case of the original docname in the Link Field.
value = frappe.db.get_value(doctype, docname)
setattr(self, df.fieldname, 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"""
if hasattr(self, method):
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):
self.docstatus = 1


Завантаження…
Відмінити
Зберегти