[rename] Bulk Email to Email Queue

This commit is contained in:
Rushabh Mehta 2016-06-22 12:58:39 +05:30
parent 4d54fb258c
commit 8a065e0028
10 changed files with 27 additions and 30 deletions

View File

@ -101,7 +101,7 @@ class RequestforQuotation(BuyingController):
frappe.sendmail(recipients=data.email_id, sender=sender, subject=subject,
message=frappe.get_template(template).render(args),
attachments = [frappe.attach_print('Request for Quotation', self.name)],as_bulk=True)
attachments = [frappe.attach_print('Request for Quotation', self.name)])
frappe.msgprint(_("Email sent to supplier {0}").format(data.supplier))
@frappe.whitelist()

View File

@ -15,7 +15,7 @@ def get_data():
"type": "doctype",
"name": "Employee Attendance Tool",
"label": _("Employee Attendance Tool"),
"description":_("Mark Employee Attendance in Bulk"),
"description":_("Mark Attendance for multiple employees"),
"hide_count": True
},
{

View File

@ -7,23 +7,23 @@ import frappe
import frappe.utils
from frappe import throw, _
from frappe.model.document import Document
from frappe.email.bulk import check_bulk_limit
from frappe.email.queue import check_email_limit
from frappe.utils.verified_command import get_signed_params, verify_request
from frappe.utils.background_jobs import enqueue
from frappe.utils.scheduler import log
from frappe.email.bulk import send
from frappe.email.queue import send
from erpnext.crm.doctype.newsletter_list.newsletter_list import add_subscribers
class Newsletter(Document):
def onload(self):
if self.email_sent:
self.get("__onload").status_count = dict(frappe.db.sql("""select status, count(name)
from `tabBulk Email` where reference_doctype=%s and reference_name=%s
from `tabEmail Queue` where reference_doctype=%s and reference_name=%s
group by status""", (self.doctype, self.name))) or None
def test_send(self, doctype="Lead"):
self.recipients = frappe.utils.split_emails(self.test_email_id)
self.send_bulk()
self.queue_all()
frappe.msgprint(_("Scheduled to send to {0}").format(self.test_email_id))
def send_emails(self):
@ -40,13 +40,13 @@ class Newsletter(Document):
enqueue(send_newsletter, queue='default', timeout=1500, event='send_newsletter', newsletter=self.name)
else:
self.send_bulk()
self.queue_all()
frappe.msgprint(_("Scheduled to send to {0} recipients").format(len(self.recipients)))
frappe.db.set(self, "email_sent", 1)
def send_bulk(self):
def queue_all(self):
if not self.get("recipients"):
# in case it is called via worker
self.recipients = self.get_recipients()
@ -63,7 +63,7 @@ class Newsletter(Document):
reference_doctype = self.doctype, reference_name = self.name,
unsubscribe_method = "/api/method/erpnext.crm.doctype.newsletter.newsletter.unsubscribe",
unsubscribe_params = {"name": self.newsletter_list},
bulk_priority = 0)
send_priority = 0)
if not frappe.flags.in_test:
frappe.db.auto_commit_on_many_writes = False
@ -76,7 +76,7 @@ class Newsletter(Document):
def validate_send(self):
if self.get("__islocal"):
throw(_("Please save the Newsletter before sending"))
check_bulk_limit(self.recipients)
check_email_limit(self.recipients)
@frappe.whitelist()
def get_lead_options():
@ -144,7 +144,7 @@ def subscribe(email):
<p><a href="{2}">{3}</a></p>
"""
frappe.sendmail(email, subject=_("Confirm Your Email"), content=content.format(*messages), bulk=True)
frappe.sendmail(email, subject=_("Confirm Your Email"), content=content.format(*messages))
@frappe.whitelist(allow_guest=True)
def confirm_subscription(email):
@ -169,7 +169,7 @@ def confirm_subscription(email):
def send_newsletter(newsletter):
try:
doc = frappe.get_doc("Newsletter", newsletter)
doc.send_bulk()
doc.queue_all()
except:
frappe.db.rollback()

View File

@ -22,7 +22,7 @@ class TestNewsletter(unittest.TestCase):
def test_send(self):
self.send_newsletter()
self.assertEquals(len(frappe.get_all("Bulk Email")), 3)
self.assertEquals(len(frappe.get_all("Email Queue")), 3)
def test_unsubscribe(self):
# test unsubscribe
@ -33,10 +33,10 @@ class TestNewsletter(unittest.TestCase):
unsubscribe(email, "_Test Newsletter List")
self.send_newsletter()
self.assertEquals(len(frappe.get_all("Bulk Email")), 2)
self.assertEquals(len(frappe.get_all("Email Queue")), 2)
def send_newsletter(self):
frappe.db.sql("delete from `tabBulk Email`")
frappe.db.sql("delete from `tabEmail Queue`")
frappe.delete_doc("Newsletter", "_Test Newsletting")
newsletter = frappe.get_doc({
"doctype": "Newsletter",

View File

@ -239,8 +239,7 @@ def send_birthday_reminders():
frappe.sendmail(recipients=filter(lambda u: u not in (e.company_email, e.personal_email, e.user_id), users),
subject=_("Birthday Reminder for {0}").format(e.employee_name),
message=_("""Today is {0}'s birthday!""").format(e.employee_name),
reply_to=e.company_email or e.personal_email or e.user_id,
bulk=True)
reply_to=e.company_email or e.personal_email or e.user_id)
def get_employees_who_are_born_today():
"""Get Employee properties whose birthday is today."""

View File

@ -20,7 +20,7 @@ class TestEmployee(unittest.TestCase):
self.assertTrue(employee.name in [e.name for e in get_employees_who_are_born_today()])
frappe.db.sql("delete from `tabBulk Email`")
frappe.db.sql("delete from `tabEmail Queue`")
hr_settings = frappe.get_doc("HR Settings", "HR Settings")
hr_settings.stop_birthday_reminders = 0
@ -28,7 +28,7 @@ class TestEmployee(unittest.TestCase):
send_birthday_reminders()
bulk_mails = frappe.db.sql("""select * from `tabBulk Email`""", as_dict=True)
email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True)
self.assertTrue("Subject: Birthday Reminder for {0}".format(employee.employee_name) \
in bulk_mails[0].message)
in email_queue[0].message)

View File

@ -214,7 +214,6 @@ class SalarySlip(TransactionBase):
if receiver:
subj = 'Salary Slip - ' + cstr(self.month) +'/'+cstr(self.fiscal_year)
frappe.sendmail([receiver], subject=subj, message = _("Please see attachment"),
attachments=[frappe.attach_print(self.doctype, self.name, file_name=self.name)],
bulk=True, reference_doctype= self.doctype, reference_name= self.name)
attachments=[frappe.attach_print(self.doctype, self.name, file_name=self.name)], reference_doctype= self.doctype, reference_name= self.name)
else:
msgprint(_("{0}: Employee email not found, hence email not sent").format(self.employee_name))

View File

@ -96,19 +96,19 @@ class TestSalarySlip(unittest.TestCase):
frappe.set_user("test_employee@example.com")
self.assertTrue(salary_slip_test_employee.has_permission("read"))
def test_email_salary_slip(self):
frappe.db.sql("delete from `tabBulk Email`")
frappe.db.sql("delete from `tabEmail Queue`")
hr_settings = frappe.get_doc("HR Settings", "HR Settings")
hr_settings.email_salary_slip_to_employee = 1
hr_settings.save()
self.make_employee("test_employee@example.com")
self.make_employee_salary_slip("test_employee@example.com")
bulk_mails = frappe.db.sql("""select name from `tabBulk Email`""")
self.assertTrue(bulk_mails)
email_queue = frappe.db.sql("""select name from `tabEmail Queue`""")
self.assertTrue(email_queue)
def make_employee(self, user):
if not frappe.db.get_value("User", user):

View File

@ -144,7 +144,7 @@ class Project(Document):
for user in self.users:
if user.welcome_email_sent==0:
frappe.sendmail(user.user, subject=_("Project Collaboration Invitation"), content=content.format(*messages), bulk=True)
frappe.sendmail(user.user, subject=_("Project Collaboration Invitation"), content=content.format(*messages))
user.welcome_email_sent=1

View File

@ -60,7 +60,6 @@ class EmailDigest(Document):
recipients=user_id,
subject="{frequency} Digest".format(frequency=self.frequency),
message=msg_for_this_receipient,
bulk=True,
reference_doctype = self.doctype,
reference_name = self.name,
unsubscribe_message = _("Unsubscribe from this Email Digest"))