diff --git a/frappe/__init__.py b/frappe/__init__.py index 8917faed7a..d416ee7b3e 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -116,6 +116,7 @@ def init(site, sites_path=None): local.module_app = None local.app_modules = None + local.system_settings = None local.user = None local.user_obj = None diff --git a/frappe/core/doctype/system_settings/system_settings.json b/frappe/core/doctype/system_settings/system_settings.json index 49c3a06edf..82ffb370d2 100644 --- a/frappe/core/doctype/system_settings/system_settings.json +++ b/frappe/core/doctype/system_settings/system_settings.json @@ -7,7 +7,7 @@ { "fieldname": "localization", "fieldtype": "Section Break", - "label": "Localization", + "label": "", "permlevel": 0 }, { @@ -20,6 +20,12 @@ "reqd": 1, "search_index": 0 }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break", + "permlevel": 0, + "precision": "" + }, { "fieldname": "time_zone", "fieldtype": "Select", @@ -30,7 +36,7 @@ { "fieldname": "date_and_number_format", "fieldtype": "Section Break", - "label": "Date and Number Format", + "label": "", "permlevel": 0 }, { @@ -41,6 +47,12 @@ "permlevel": 0, "reqd": 1 }, + { + "fieldname": "column_break_7", + "fieldtype": "Column Break", + "permlevel": 0, + "precision": "" + }, { "fieldname": "number_format", "fieldtype": "Select", @@ -80,6 +92,12 @@ "permlevel": 0, "precision": "" }, + { + "fieldname": "column_break_13", + "fieldtype": "Column Break", + "permlevel": 0, + "precision": "" + }, { "description": "Run scheduled jobs only if checked", "fieldname": "enable_scheduler", @@ -96,11 +114,39 @@ "permlevel": 0, "precision": "", "report_hide": 1 + }, + { + "fieldname": "email", + "fieldtype": "Section Break", + "label": "EMail", + "permlevel": 0, + "precision": "" + }, + { + "description": "Your organization name and address for the email footer.", + "fieldname": "email_footer_address", + "fieldtype": "Small Text", + "label": "Email Footer Address", + "permlevel": 0, + "precision": "" + }, + { + "fieldname": "column_break_18", + "fieldtype": "Column Break", + "permlevel": 0, + "precision": "" + }, + { + "fieldname": "disable_standard_email_footer", + "fieldtype": "Check", + "label": "Disable Standard Email Footer", + "permlevel": 0, + "precision": "" } ], "icon": "icon-cog", "issingle": 1, - "modified": "2015-05-18 05:11:38.759688", + "modified": "2015-05-21 07:15:55.682132", "modified_by": "Administrator", "module": "Core", "name": "System Settings", diff --git a/frappe/email/bulk.py b/frappe/email/bulk.py index 0575d15d3b..7ba0c9d815 100644 --- a/frappe/email/bulk.py +++ b/frappe/email/bulk.py @@ -72,13 +72,13 @@ def send(recipients=None, sender=None, subject=None, message=None, reference_doc unsubscribe_method, unsubscribe_params) # add to queue - email_content = add_unsubscribe_link(email_content, email, reference_doctype, reference_name, - unsubscribe_url, unsubscribe_message) + email_content = add_unsubscribe_link(email_content, email, reference_doctype, + reference_name, unsubscribe_url, unsubscribe_message) - email_text_context += "\n" + _("Unsubscribe link: {0}").format(unsubscribe_url) + email_text_context += "\n" + _("This email was sent to {0}. To unsubscribe click on this link: {1}").format(email, unsubscribe_url) - add(email, sender, subject, email_content, email_text_context, reference_doctype, reference_name, attachments, reply_to, - cc, message_id, send_after) + add(email, sender, subject, email_content, email_text_context, reference_doctype, + reference_name, attachments, reply_to, cc, message_id, send_after) def add(email, sender, subject, formatted, text_content=None, reference_doctype=None, reference_name=None, attachments=None, reply_to=None, @@ -121,11 +121,12 @@ def check_bulk_limit(recipients): BulkLimitCrossedError) def add_unsubscribe_link(message, email, reference_doctype, reference_name, unsubscribe_url, unsubscribe_message): - unsubscribe_link = """
- - {unsubscribe_message} + unsubscribe_link = """
+ {email}. {unsubscribe_message}.
""".format(unsubscribe_url = unsubscribe_url, + email= _("This email was sent to {0}").format(email), unsubscribe_message = unsubscribe_message or _("Unsubscribe from this list")) message = message.replace("", unsubscribe_link) diff --git a/frappe/email/doctype/bulk_email/bulk_email.json b/frappe/email/doctype/bulk_email/bulk_email.json index bff64320cd..e4807eba64 100644 --- a/frappe/email/doctype/bulk_email/bulk_email.json +++ b/frappe/email/doctype/bulk_email/bulk_email.json @@ -73,13 +73,14 @@ "icon": "icon-envelope", "idx": 1, "in_create": 1, - "modified": "2015-04-01 10:00:20.892939", + "modified": "2015-05-21 07:26:13.627637", "modified_by": "Administrator", "module": "Email", "name": "Bulk Email", "owner": "Administrator", "permissions": [ { + "delete": 1, "email": 1, "permlevel": 0, "print": 1, diff --git a/frappe/email/email_body.py b/frappe/email/email_body.py index 1ee0135e8d..979452fa56 100644 --- a/frappe/email/email_body.py +++ b/frappe/email/email_body.py @@ -5,7 +5,7 @@ from __future__ import unicode_literals import frappe from frappe.utils.pdf import get_pdf from frappe.email.smtp import get_outgoing_email_account -from frappe.utils.data import get_url, scrub_urls, strip, expand_relative_urls +from frappe.utils import get_url, scrub_urls, strip, expand_relative_urls, cint import email.utils from markdown2 import markdown @@ -232,10 +232,11 @@ def get_footer(footer=None): if email_account and email_account.footer: footer += email_account.footer - else: - for default_mail_footer in frappe.get_hooks("default_mail_footer"): - footer += default_mail_footer footer += "" + if not cint(frappe.db.get_default("disable_standard_email_footer")): + for default_mail_footer in frappe.get_hooks("default_mail_footer"): + footer += default_mail_footer + return footer diff --git a/frappe/templates/emails/standard.html b/frappe/templates/emails/standard.html index c30f1b986f..6e4129d9a8 100644 --- a/frappe/templates/emails/standard.html +++ b/frappe/templates/emails/standard.html @@ -5,9 +5,11 @@ {{ subject or "" }} - + -
{{ content }}
+
+ {{ content }} +