Merge pull request #5524 from rmehta/email-queue
[rename] Bulk Email to Email Queue
This commit is contained in:
commit
2039b3e192
@ -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()
|
||||
|
@ -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
|
||||
},
|
||||
{
|
||||
|
@ -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()
|
||||
|
@ -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",
|
||||
|
@ -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."""
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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"))
|
||||
|
Loading…
x
Reference in New Issue
Block a user