diff --git a/frappe/core/doctype/communication/comment.py b/frappe/core/doctype/communication/comment.py index 96c3e59d84..b5f0f141bc 100644 --- a/frappe/core/doctype/communication/comment.py +++ b/frappe/core/doctype/communication/comment.py @@ -82,12 +82,7 @@ def notify_mentions(doc): sender_fullname = get_fullname(frappe.session.user) parent_doc_label = "{0} {1}".format(_(doc.reference_doctype), doc.reference_name) - subject = _("{0} mentioned you in a comment in {1}").format(sender_fullname, parent_doc_label) - message = frappe.get_template("templates/emails/mentioned_in_comment.html").render({ - "sender_fullname": sender_fullname, - "comment": doc, - "link": get_link_to_form(doc.reference_doctype, doc.reference_name, label=parent_doc_label) - }) + subject = _("{0} mentioned you in a comment").format(sender_fullname) recipients = [frappe.db.get_value("User", {"enabled": 1, "username": username, "user_type": "System User"}) for username in mentions] @@ -96,7 +91,13 @@ def notify_mentions(doc): recipients=recipients, sender=frappe.session.user, subject=subject, - message=message + template="mentioned_in_comment", + args={ + "sender_fullname": sender_fullname, + "comment": doc, + "link": get_link_to_form(doc.reference_doctype, doc.reference_name, label=parent_doc_label) + }, + header=[_('New Mention'), 'orange'] ) def get_comments_from_parent(doc): diff --git a/frappe/core/doctype/feedback_trigger/feedback_trigger.py b/frappe/core/doctype/feedback_trigger/feedback_trigger.py index 6b9ca3e46a..e40f668d58 100644 --- a/frappe/core/doctype/feedback_trigger/feedback_trigger.py +++ b/frappe/core/doctype/feedback_trigger/feedback_trigger.py @@ -66,12 +66,16 @@ def send_feedback_request(reference_doctype, reference_name, trigger="Manual", d feedback_request, url = get_feedback_request_url(reference_doctype, reference_name, details.get("recipients"), trigger) - feedback_url = frappe.render_template("templates/emails/feedback_request_url.html", { "url": url }) + feedback_msg = frappe.render_template("templates/emails/feedback_request_url.html", { "url": url }) # appending feedback url to message body - details.update({ "message": "{message}{feedback_url}".format( + message = "{message}{feedback_msg}".format( message=details.get("message"), - feedback_url=feedback_url) + feedback_msg=feedback_msg + ) + details.update({ + "message": message, + "header": [details.get('subject'), 'blue'] }) if details: diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index da08997456..61324618eb 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -858,25 +858,21 @@ def notify_admin_access_to_system_manager(login_manager=None): and login_manager.user == "Administrator" and frappe.local.conf.notify_admin_access_to_system_manager): - message = """
- {dear_system_manager}
- {access_message}
- {is_it_unauthorized}
-
%(description)s
" % e - text += ''\ - + frappe._("Daily Event Digest is sent for Calendar Events where reminders are set.")+'
' - - frappe.sendmail(recipients=user.email, subject=frappe._("Upcoming Events for Today"), - content = text) + frappe.sendmail( + recipients=user.email, + subject=frappe._("Upcoming Events for Today"), + template="upcoming_events", + args={ + 'events': events, + }, + header=[frappe._("Events in Today's Calendar"), 'blue'] + ) @frappe.whitelist() def get_events(start, end, user=None, for_reminder=False, filters=None): diff --git a/frappe/desk/page/backups/backups.py b/frappe/desk/page/backups/backups.py index f3517c6953..2d493515b7 100644 --- a/frappe/desk/page/backups/backups.py +++ b/frappe/desk/page/backups/backups.py @@ -76,9 +76,14 @@ def backup_files_and_notify_user(user_email=None): backup_files = backup(with_files=True) get_downloadable_links(backup_files) - subject = "File backup is ready" - message = frappe.render_template('frappe/templates/emails/file_backup_notification.html', backup_files, is_path=True) - frappe.sendmail(recipients=[user_email], subject=subject, message=message) + subject = _("File backup is ready") + frappe.sendmail( + recipients=[user_email], + subject=subject, + template="file_backup_notification", + args=backup_files, + header=[subject, 'green'] + ) def get_downloadable_links(backup_files): for key in ['backup_path_files', 'backup_path_private_files']: diff --git a/frappe/desk/page/chat/chat.py b/frappe/desk/page/chat/chat.py index a0ea8b7393..19f4d4cae4 100644 --- a/frappe/desk/page/chat/chat.py +++ b/frappe/desk/page/chat/chat.py @@ -6,6 +6,7 @@ import frappe from frappe.desk.notifications import delete_notification_count_for from frappe.core.doctype.user.user import STANDARD_USERS from frappe.utils import cint +from frappe import _ @frappe.whitelist() def get_list(arg=None): @@ -132,11 +133,13 @@ def _notify(contact, txt, subject=None): frappe.sendmail(\ recipients=contact, sender= frappe.db.get_value("User", frappe.session.user, "email"), - subject=subject or "New Message from " + get_fullname(frappe.session.user), - message=frappe.get_template("templates/emails/new_message.html").render({ + subject=subject or _("New Message from {0}").format(get_fullname(frappe.session.user)), + template="new_message", + args={ "from": get_fullname(frappe.session.user), "message": txt, "link": get_url() - })) + }, + header=[_('New Message'), 'orange']) except frappe.OutgoingEmailError: pass diff --git a/frappe/public/css/email.css b/frappe/public/css/email.css index 3f2df6d15f..57b2033d49 100644 --- a/frappe/public/css/email.css +++ b/frappe/public/css/email.css @@ -121,6 +121,9 @@ hr { .text-small { font-size: 10px; } +.text-bold { + font-weight: bold; +} .indicator { width: 8px; height: 8px; diff --git a/frappe/public/less/email.less b/frappe/public/less/email.less index d4d48482ea..640c300daa 100644 --- a/frappe/public/less/email.less +++ b/frappe/public/less/email.less @@ -152,6 +152,10 @@ hr { font-size: @text-small; } +.text-bold { + font-weight: bold; +} + .indicator { width: 8px; height: 8px; diff --git a/frappe/templates/emails/administrator_logged_in.html b/frappe/templates/emails/administrator_logged_in.html new file mode 100644 index 0000000000..d16034bfd1 --- /dev/null +++ b/frappe/templates/emails/administrator_logged_in.html @@ -0,0 +1,3 @@ +{{ _("Dear System Manager,") }}
+{{ access_message }}
+{{ _("If you think this is unauthorized, please change the Administrator password.") }}
\ No newline at end of file diff --git a/frappe/templates/emails/feedback_request_url.html b/frappe/templates/emails/feedback_request_url.html index b6d4de7f32..e9cec87b4d 100644 --- a/frappe/templates/emails/feedback_request_url.html +++ b/frappe/templates/emails/feedback_request_url.html @@ -5,5 +5,5 @@ ★ ★ ★ -{{ _("1 star being lowest & 5 stars being highest rating") }}
+You have a new message from: {{ from }}
{{ message }}
-+ {{ e.starts_on }}: {{ e.subject }} +
+ {{ _("Daily Event Digest is sent for Calendar Events where reminders are set.") }} +
\ No newline at end of file diff --git a/frappe/utils/jinja.py b/frappe/utils/jinja.py index 1fd9a0d85c..749a28479f 100644 --- a/frappe/utils/jinja.py +++ b/frappe/utils/jinja.py @@ -28,8 +28,8 @@ def get_email_from_template(name, args): args = args or {} try: message = get_template('templates/emails/' + name + '.html').render(args) - except TemplateNotFound: - message = None + except TemplateNotFound as e: + raise e try: text_content = get_template('templates/emails/' + name + '.txt').render(args)