From 3ab28664656a81410de2f4d5be23e544faa82955 Mon Sep 17 00:00:00 2001 From: sokumon Date: Mon, 28 Apr 2025 12:39:02 +0530 Subject: [PATCH 1/5] fix: extend_notification_header --- .../doctype/notification_log/notification_log.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/frappe/desk/doctype/notification_log/notification_log.py b/frappe/desk/doctype/notification_log/notification_log.py index 79a013fc0e..0f26833bd9 100644 --- a/frappe/desk/doctype/notification_log/notification_log.py +++ b/frappe/desk/doctype/notification_log/notification_log.py @@ -152,10 +152,22 @@ def get_email_header(doc, language: str | None = None): "Assignment": _("Assignment Update on {0}", lang=language).format(docname), "Share": _("New Document Shared {0}", lang=language).format(docname), } - + header_map = { + **header_map, + **format_email_header( + frappe.get_hooks("notification_email_header"), language=language, docname=docname + ), + } return header_map[doc.type or "Default"] +def format_email_header(header_map, language, docname): + messages = [] + for v in list(header_map.values()): + messages.append(_(v[0], lang=language).format(docname)) + return dict(zip(header_map.keys(), messages, strict=True)) + + @frappe.whitelist() @http_cache(max_age=60, stale_while_revalidate=60 * 60) def get_notification_logs(limit=20): From 61dc912237170461fb3c813b09038636af7da9e8 Mon Sep 17 00:00:00 2001 From: sokumon Date: Mon, 28 Apr 2025 19:01:04 +0530 Subject: [PATCH 2/5] fix: check if hook is present --- .../doctype/notification_log/notification_log.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/frappe/desk/doctype/notification_log/notification_log.py b/frappe/desk/doctype/notification_log/notification_log.py index 0f26833bd9..b08e6f0597 100644 --- a/frappe/desk/doctype/notification_log/notification_log.py +++ b/frappe/desk/doctype/notification_log/notification_log.py @@ -152,12 +152,12 @@ def get_email_header(doc, language: str | None = None): "Assignment": _("Assignment Update on {0}", lang=language).format(docname), "Share": _("New Document Shared {0}", lang=language).format(docname), } - header_map = { - **header_map, - **format_email_header( - frappe.get_hooks("notification_email_header"), language=language, docname=docname - ), - } + additional_email_headers = frappe.get_hooks("notification_email_header") + if len(additional_email_headers) > 0: + header_map = { + **header_map, + **format_email_header(additional_email_headers, language=language, docname=docname), + } return header_map[doc.type or "Default"] From cda85047288f89a58770eaf212aed9902b62363c Mon Sep 17 00:00:00 2001 From: sokumon Date: Tue, 29 Apr 2025 11:15:46 +0530 Subject: [PATCH 3/5] fix: add new route hook called post_after_load --- frappe/public/js/frappe/form/form.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index cd69726fe0..be489723e9 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -671,6 +671,9 @@ frappe.ui.form.Form = class FrappeForm { route_callback(this); } + if (frappe.route_hooks.post_after_load) { + frappe.route_hooks.post_after_load(this); + } } refresh_fields() { From 056dd76f206b1ec32a45f450dc1ed8ea20a931e0 Mon Sep 17 00:00:00 2001 From: sokumon Date: Sat, 3 May 2025 10:36:21 +0530 Subject: [PATCH 4/5] fix: use form events to load on all forms --- frappe/public/js/frappe/form/form.js | 3 --- frappe/public/js/frappe/form/script_manager.js | 5 +++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index be489723e9..cd69726fe0 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -671,9 +671,6 @@ frappe.ui.form.Form = class FrappeForm { route_callback(this); } - if (frappe.route_hooks.post_after_load) { - frappe.route_hooks.post_after_load(this); - } } refresh_fields() { diff --git a/frappe/public/js/frappe/form/script_manager.js b/frappe/public/js/frappe/form/script_manager.js index a9d5c78696..8b1f1afe9d 100644 --- a/frappe/public/js/frappe/form/script_manager.js +++ b/frappe/public/js/frappe/form/script_manager.js @@ -163,6 +163,11 @@ frappe.ui.form.ScriptManager = class ScriptManager { handlers.new_style.push(fn); }); } + if (frappe.ui.form.handlers["*"] && frappe.ui.form.handlers["*"][event_name]) { + $.each(frappe.ui.form.handlers["*"][event_name], function (i, fn) { + handlers.new_style.push(fn); + }); + } if (this.frm.cscript && this.frm.cscript[event_name]) { handlers.old_style.push(event_name); } From e993df311be397cd8422ddb44ac979bc9ed5e06d Mon Sep 17 00:00:00 2001 From: sokumon Date: Sun, 11 May 2025 11:54:04 +0530 Subject: [PATCH 5/5] fix: add email header --- .../doctype/notification_log/notification_log.json | 13 ++++++++++--- .../doctype/notification_log/notification_log.py | 10 +++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/frappe/desk/doctype/notification_log/notification_log.json b/frappe/desk/doctype/notification_log/notification_log.json index c3b3c09d92..3228392a92 100644 --- a/frappe/desk/doctype/notification_log/notification_log.json +++ b/frappe/desk/doctype/notification_log/notification_log.json @@ -16,7 +16,8 @@ "attachment_link", "open_reference_document", "from_user", - "link" + "link", + "email_header" ], "fields": [ { @@ -98,12 +99,17 @@ "fieldtype": "Data", "hidden": 1, "label": "Link" + }, + { + "fieldname": "email_header", + "fieldtype": "Data", + "label": "Email Header" } ], "hide_toolbar": 1, "in_create": 1, "links": [], - "modified": "2024-08-03 09:38:10.497711", + "modified": "2025-05-10 23:58:54.717673", "modified_by": "Administrator", "module": "Desk", "name": "Notification Log", @@ -119,9 +125,10 @@ "share": 1 } ], + "row_format": "Dynamic", "sort_field": "creation", "sort_order": "DESC", "states": [], "title_field": "subject", "track_seen": 1 -} \ No newline at end of file +} diff --git a/frappe/desk/doctype/notification_log/notification_log.py b/frappe/desk/doctype/notification_log/notification_log.py index b08e6f0597..e4ae43d113 100644 --- a/frappe/desk/doctype/notification_log/notification_log.py +++ b/frappe/desk/doctype/notification_log/notification_log.py @@ -152,13 +152,9 @@ def get_email_header(doc, language: str | None = None): "Assignment": _("Assignment Update on {0}", lang=language).format(docname), "Share": _("New Document Shared {0}", lang=language).format(docname), } - additional_email_headers = frappe.get_hooks("notification_email_header") - if len(additional_email_headers) > 0: - header_map = { - **header_map, - **format_email_header(additional_email_headers, language=language, docname=docname), - } - return header_map[doc.type or "Default"] + if not doc.email_header: + doc.email_header = header_map[doc.type or "default"] + return doc.email_header def format_email_header(header_map, language, docname):