fix: link notification log document and show message

This commit is contained in:
prssanna 2020-05-11 15:23:18 +05:30
parent b685412b36
commit e8f30259c6
4 changed files with 37 additions and 15 deletions

View file

@ -9,7 +9,6 @@
"for_user",
"type",
"email_content",
"column_break_4",
"document_type",
"read",
"document_name",
@ -26,6 +25,7 @@
{
"fieldname": "for_user",
"fieldtype": "Link",
"hidden": 1,
"label": "For User",
"options": "User",
"read_only": 1
@ -33,6 +33,7 @@
{
"fieldname": "type",
"fieldtype": "Select",
"hidden": 1,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Type",
@ -42,17 +43,14 @@
},
{
"fieldname": "email_content",
"fieldtype": "Text",
"label": "Email Content",
"fieldtype": "Text Editor",
"label": "Message",
"read_only": 1
},
{
"fieldname": "column_break_4",
"fieldtype": "Column Break"
},
{
"fieldname": "document_type",
"fieldtype": "Link",
"hidden": 1,
"label": "Document Type",
"options": "DocType",
"read_only": 1,
@ -61,13 +59,14 @@
{
"fieldname": "document_name",
"fieldtype": "Data",
"label": "Document Name",
"label": "Document Link",
"read_only": 1,
"search_index": 1
},
{
"fieldname": "from_user",
"fieldtype": "Link",
"hidden": 1,
"label": "From User",
"options": "User",
"read_only": 1,
@ -84,8 +83,8 @@
],
"in_create": 1,
"links": [],
"modified": "2020-05-08 15:16:36.365285",
"modified_by": "Administrator",
"modified": "2020-05-11 15:18:20.893718",
"modified_by": "umair@erpnext.com",
"module": "Desk",
"name": "Notification Log",
"owner": "Administrator",

View file

@ -65,11 +65,26 @@ def make_notification_logs(doc, users):
return
_doc = frappe.new_doc('Notification Log')
attachments = None
if doc.attachments:
attachments = doc.pop('attachments')
_doc.update(doc)
_doc.for_user = user
_doc.subject = _doc.subject.replace('<div>', '').replace('</div>', '')
if _doc.for_user != _doc.from_user or doc.type == 'Energy Point' or doc.type == 'Alert':
_doc.insert(ignore_permissions=True)
if attachments:
attach_file_to_doc(attachments, _doc.name)
def attach_file_to_doc(attachments, docname):
from frappe.utils.file_manager import save_file
for attachment in attachments:
attachment.pop("print_format_attachment", None)
print_format_file = frappe._dict(frappe.attach_print(**attachment))
save_file(print_format_file.fname, print_format_file.fcontent, 'Notification Log', docname)
def send_notification_email(doc):

View file

@ -151,8 +151,8 @@ def get_context(context):
subject = self.subject
if "{" in subject:
subject = frappe.render_template(self.subject, context)
subject = '<b>[Alert] </b>' + subject
attachments = self.get_attachment(doc)
recipients, cc, bcc = self.get_list_of_recipients(doc, context)
users = recipients + cc + bcc
@ -161,6 +161,8 @@ def get_context(context):
'document_type': doc.doctype,
'document_name': doc.name,
'subject': subject,
'email_content': frappe.render_template(self.message, context),
'attachments': attachments
}
enqueue_create_notification(recipients, notification_doc)

View file

@ -304,10 +304,7 @@ frappe.ui.Notifications = class Notifications {
}
get_dropdown_item_html(field) {
let doc_link = frappe.utils.get_form_link(
field.document_type,
field.document_name
);
let doc_link = this.get_item_link(field);
let read_class = field.read ? '' : 'unread';
let mark_read_action = field.read ? '': 'data-action="mark_as_read"';
let message = field.subject;
@ -336,6 +333,15 @@ frappe.ui.Notifications = class Notifications {
return item_html;
}
get_item_link(field) {
const link_doctype = field.type == 'Alert'? 'Notification Log': field.document_type;
const link_docname = field.type == 'Alert'? field.name: field.document_name;
return frappe.utils.get_form_link(
link_doctype,
link_docname
);
}
render_dropdown_headers() {
this.categories = [
{