Merge pull request #1317 from rmehta/bulk-priority
[enhancement] added priority in bulk email
This commit is contained in:
commit
d768a125c6
4 changed files with 37 additions and 7 deletions
|
|
@ -310,7 +310,8 @@ def sendmail(recipients=(), sender="", subject="No Subject", message="No Message
|
|||
as_markdown=False, bulk=False, reference_doctype=None, reference_name=None,
|
||||
unsubscribe_method=None, unsubscribe_params=None, unsubscribe_message=None,
|
||||
attachments=None, content=None, doctype=None, name=None, reply_to=None,
|
||||
cc=(), message_id=None, as_bulk=False, send_after=None, expose_recipients=False):
|
||||
cc=(), message_id=None, as_bulk=False, send_after=None, expose_recipients=False,
|
||||
bulk_priority=1):
|
||||
"""Send email using user's default **Email Account** or global default **Email Account**.
|
||||
|
||||
|
||||
|
|
@ -320,6 +321,7 @@ def sendmail(recipients=(), sender="", subject="No Subject", message="No Message
|
|||
:param message: (or `content`) Email Content.
|
||||
:param as_markdown: Convert content markdown to HTML.
|
||||
:param bulk: Send via scheduled email sender **Bulk Email**. Don't send immediately.
|
||||
:param bulk_priority: Priority for bulk email, default 1.
|
||||
:param reference_doctype: (or `doctype`) Append as communication to this DocType.
|
||||
:param reference_name: (or `name`) Append as communication to this document name.
|
||||
:param unsubscribe_method: Unsubscribe url with options email, doctype, name. e.g. `/api/method/unsubscribe`
|
||||
|
|
@ -338,7 +340,7 @@ def sendmail(recipients=(), sender="", subject="No Subject", message="No Message
|
|||
reference_doctype = doctype or reference_doctype, reference_name = name or reference_name,
|
||||
unsubscribe_method=unsubscribe_method, unsubscribe_params=unsubscribe_params, unsubscribe_message=unsubscribe_message,
|
||||
attachments=attachments, reply_to=reply_to, cc=cc, message_id=message_id, send_after=send_after,
|
||||
expose_recipients=expose_recipients)
|
||||
expose_recipients=expose_recipients, bulk_priority=bulk_priority)
|
||||
else:
|
||||
import frappe.email
|
||||
if as_markdown:
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ class BulkLimitCrossedError(frappe.ValidationError): pass
|
|||
def send(recipients=None, sender=None, subject=None, message=None, reference_doctype=None,
|
||||
reference_name=None, unsubscribe_method=None, unsubscribe_params=None, unsubscribe_message=None,
|
||||
attachments=None, reply_to=None, cc=(), message_id=None, send_after=None,
|
||||
expose_recipients=False):
|
||||
expose_recipients=False, bulk_priority=1):
|
||||
"""Add email to sending queue (Bulk Email)
|
||||
|
||||
:param recipients: List of recipients.
|
||||
|
|
@ -26,6 +26,7 @@ def send(recipients=None, sender=None, subject=None, message=None, reference_doc
|
|||
:param message: Email message.
|
||||
:param reference_doctype: Reference DocType of caller document.
|
||||
:param reference_name: Reference name of caller document.
|
||||
:param bulk_priority: Priority for bulk email, default 1.
|
||||
:param unsubscribe_method: URL method for unsubscribe. Default is `/api/method/frappe.email.bulk.unsubscribe`.
|
||||
:param unsubscribe_params: additional params for unsubscribed links. default are name, doctype, email
|
||||
:param attachments: Attachments to be sent.
|
||||
|
|
@ -90,15 +91,16 @@ def send(recipients=None, sender=None, subject=None, message=None, reference_doc
|
|||
|
||||
# add to queue
|
||||
add(email, sender, subject, email_content, email_text_context, reference_doctype,
|
||||
reference_name, attachments, reply_to, cc, message_id, send_after)
|
||||
reference_name, attachments, reply_to, cc, message_id, send_after, bulk_priority)
|
||||
|
||||
def add(email, sender, subject, formatted, text_content=None,
|
||||
reference_doctype=None, reference_name=None, attachments=None, reply_to=None,
|
||||
cc=(), message_id=None, send_after=None):
|
||||
cc=(), message_id=None, send_after=None, bulk_priority=1):
|
||||
"""add to bulk mail queue"""
|
||||
e = frappe.new_doc('Bulk Email')
|
||||
e.sender = sender
|
||||
e.recipient = email
|
||||
e.priority = bulk_priority
|
||||
|
||||
try:
|
||||
mail = get_email(email, sender=e.sender, formatted=formatted, subject=subject,
|
||||
|
|
@ -231,7 +233,7 @@ def flush(from_test=False):
|
|||
for i in xrange(500):
|
||||
email = frappe.db.sql("""select * from `tabBulk Email` where
|
||||
status='Not Sent' and ifnull(send_after, "2000-01-01 00:00:00") < %s
|
||||
order by creation asc limit 1 for update""", now_datetime(), as_dict=1)
|
||||
order by priority desc, creation asc limit 1 for update""", now_datetime(), as_dict=1)
|
||||
if email:
|
||||
email = email[0]
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -181,6 +181,29 @@
|
|||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"default": "1",
|
||||
"fieldname": "priority",
|
||||
"fieldtype": "Int",
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"in_filter": 0,
|
||||
"in_list_view": 0,
|
||||
"label": "Priority",
|
||||
"no_copy": 0,
|
||||
"permlevel": 0,
|
||||
"precision": "",
|
||||
"print_hide": 0,
|
||||
"read_only": 1,
|
||||
"report_hide": 0,
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"unique": 0
|
||||
}
|
||||
],
|
||||
"hide_heading": 0,
|
||||
|
|
@ -192,7 +215,7 @@
|
|||
"is_submittable": 0,
|
||||
"issingle": 0,
|
||||
"istable": 0,
|
||||
"modified": "2015-05-21 07:26:13.627637",
|
||||
"modified": "2015-09-29 05:16:31.857121",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Email",
|
||||
"name": "Bulk Email",
|
||||
|
|
|
|||
|
|
@ -203,6 +203,9 @@ def formatdate(string_date=None, format_string=None):
|
|||
|
||||
return babel.dates.format_date(date, format_string, locale=(frappe.local.lang or "").replace("-", "_"))
|
||||
|
||||
def format_time(txt):
|
||||
return babel.dates.format_time(get_time(txt), locale=(frappe.local.lang or "").replace("-", "_"))
|
||||
|
||||
def format_datetime(datetime_string, format_string=None):
|
||||
if not datetime_string:
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue