ソースを参照

[hook] added before_change hook to trigger email_alerts before db_set

version-14
mbauskar 8年前
コミット
5cd886b8cf
2個のファイルの変更5行の追加0行の削除
  1. +3
    -0
      frappe/model/base_document.py
  2. +2
    -0
      frappe/model/document.py

+ 3
- 0
frappe/model/base_document.py ファイルの表示

@@ -381,6 +381,9 @@ class BaseDocument(object):
self.set("modified", now()) self.set("modified", now())
self.set("modified_by", frappe.session.user) self.set("modified_by", frappe.session.user)


# to trigger email alert on value change
self.run_method('before_change')

frappe.db.set_value(self.doctype, self.name, fieldname, value, frappe.db.set_value(self.doctype, self.name, fieldname, value,
self.modified, self.modified_by, update_modified=update_modified) self.modified, self.modified_by, update_modified=update_modified)




+ 2
- 0
frappe/model/document.py ファイルの表示

@@ -681,6 +681,7 @@ class Document(BaseDocument):
def _evaluate_alert(alert): def _evaluate_alert(alert):
if not alert.name in self.flags.email_alerts_executed: if not alert.name in self.flags.email_alerts_executed:
evaluate_alert(self, alert.name, alert.event) evaluate_alert(self, alert.name, alert.event)
self.flags.email_alerts_executed.append(alert.name)


event_map = { event_map = {
"on_update": "Save", "on_update": "Save",
@@ -692,6 +693,7 @@ class Document(BaseDocument):
if not self.flags.in_insert: if not self.flags.in_insert:
# value change is not applicable in insert # value change is not applicable in insert
event_map['validate'] = 'Value Change' event_map['validate'] = 'Value Change'
event_map['before_change'] = 'Value Change'


for alert in self.flags.email_alerts: for alert in self.flags.email_alerts:
event = event_map.get(method, None) event = event_map.get(method, None)


読み込み中…
キャンセル
保存