diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index ae01396150..98bd849637 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -381,6 +381,9 @@ class BaseDocument(object): self.set("modified", now()) 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, self.modified, self.modified_by, update_modified=update_modified) diff --git a/frappe/model/document.py b/frappe/model/document.py index 7dfb880926..e633897813 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -681,6 +681,7 @@ class Document(BaseDocument): def _evaluate_alert(alert): if not alert.name in self.flags.email_alerts_executed: evaluate_alert(self, alert.name, alert.event) + self.flags.email_alerts_executed.append(alert.name) event_map = { "on_update": "Save", @@ -692,6 +693,7 @@ class Document(BaseDocument): if not self.flags.in_insert: # value change is not applicable in insert event_map['validate'] = 'Value Change' + event_map['before_change'] = 'Value Change' for alert in self.flags.email_alerts: event = event_map.get(method, None)