diff --git a/frappe/email/doctype/notification/notification.py b/frappe/email/doctype/notification/notification.py index 31a39724ef..cd8e85324a 100644 --- a/frappe/email/doctype/notification/notification.py +++ b/frappe/email/doctype/notification/notification.py @@ -134,7 +134,8 @@ def get_context(context): doc.set(self.set_property_after_alert, self.property_value) doc.flags.updater_reference = { 'doctype': self.doctype, - 'docname': self.name + 'docname': self.name, + 'label': _('via Notification') } doc.save() except Exception as e: @@ -307,7 +308,7 @@ def evaluate_alert(doc, alert, event): if event=="Value Change" and not doc.is_new(): try: - db_value = frappe.db.get_value(doc.doctype, doc.name, alert.value_changed) + db_value = doc._doc_before_save.get(alert.value_changed) except Exception as e: if frappe.db.is_missing_column(e): alert.db_set('enabled', 0) diff --git a/frappe/model/document.py b/frappe/model/document.py index 68a65e0401..68062b2d13 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -842,9 +842,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' - event_map['before_update_after_submit'] = 'Value Change' + event_map['on_change'] = 'Value Change' for alert in self.flags.notifications: event = event_map.get(method, None) @@ -941,7 +939,6 @@ class Document(BaseDocument): elif self._action=="update_after_submit": self.run_method("on_update_after_submit") - self.run_method('on_change') self.clear_cache() self.notify_update() @@ -951,6 +948,8 @@ class Document(BaseDocument): if getattr(self.meta, 'track_changes', False) and self._doc_before_save and not self.flags.ignore_version: self.save_version() + self.run_method('on_change') + if (self.doctype, self.name) in frappe.flags.currently_saving: frappe.flags.currently_saving.remove((self.doctype, self.name))