Browse Source

[enhancement] new email footer, like mailchip

version-14
Rushabh Mehta 10 years ago
committed by Nabin Hait
parent
commit
b39869a041
6 changed files with 70 additions and 18 deletions
  1. +1
    -0
      frappe/__init__.py
  2. +49
    -3
      frappe/core/doctype/system_settings/system_settings.json
  3. +9
    -8
      frappe/email/bulk.py
  4. +2
    -1
      frappe/email/doctype/bulk_email/bulk_email.json
  5. +5
    -4
      frappe/email/email_body.py
  6. +4
    -2
      frappe/templates/emails/standard.html

+ 1
- 0
frappe/__init__.py View File

@@ -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


+ 49
- 3
frappe/core/doctype/system_settings/system_settings.json View File

@@ -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",


+ 9
- 8
frappe/email/bulk.py View File

@@ -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 = """<div style="padding: 7px; margin-top: 7px;">
<a href="{unsubscribe_url}" style="color: #8D99A6; text-decoration: none; font-size: 85%;" target="_blank">
{unsubscribe_message}
unsubscribe_link = """<div style="padding: 7px; text-align: center;">
<a href="{unsubscribe_url}" style="color: #8D99A6; text-decoration: none;
target="_blank">{email}. {unsubscribe_message}.
</a>
</div>""".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 here-->", unsubscribe_link)


+ 2
- 1
frappe/email/doctype/bulk_email/bulk_email.json View File

@@ -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,


+ 5
- 4
frappe/email/email_body.py View File

@@ -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 += "<!--unsubscribe link here-->"

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

+ 4
- 2
frappe/templates/emails/standard.html View File

@@ -5,9 +5,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>{{ subject or "" }}</title>
</head>
<body style="line-height: 1.6;">
<body style="line-height: 1.5; color: #36414C;">
<!-- body -->
<div style="font-family: Helvetica, Arial, sans-serif; font-size: 14px;">{{ content }}</div>
<div style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; padding: 10px;">
{{ content }}
</div>

<!-- footer -->
<div class="email-footer" style="margin-top: 30px; font-family: Helvetica, Arial, sans-serif; font-size: 11px;"


Loading…
Cancel
Save