Moved tasks content to newsletter.py

This commit is contained in:
Valmik Jangla 2016-03-18 03:38:22 -07:00 committed by Anand Doshi
parent 6842f2e75c
commit 4af736b989
2 changed files with 26 additions and 29 deletions

30
erpnext/crm/doctype/newsletter/newsletter.py Normal file → Executable file
View File

@ -10,7 +10,8 @@ from frappe.model.document import Document
from frappe.email.bulk import check_bulk_limit
from frappe.utils.verified_command import get_signed_params, verify_request
from frappe.utils.background_jobs import enqueue
from erpnext.tasks import send_newsletter
from frappe.utils.scheduler import log
from frappe.email.bulk import send
from erpnext.crm.doctype.newsletter_list.newsletter_list import add_subscribers
class Newsletter(Document):
@ -34,7 +35,10 @@ class Newsletter(Document):
if getattr(frappe.local, "is_ajax", False):
self.validate_send()
enqueue(send_newsletter, newsletter=self.name)
# using default queue with a longer timeout as this isn't a scheduled task
enqueue(send_newsletter, queue='default', timeout=1500, event='send_newsletter', newsletter=self.name)
else:
self.send_bulk()
@ -51,8 +55,6 @@ class Newsletter(Document):
sender = self.send_from or frappe.utils.get_formatted_email(self.owner)
from frappe.email.bulk import send
if not frappe.flags.in_test:
frappe.db.auto_commit_on_many_writes = True
@ -164,4 +166,24 @@ def confirm_subscription(email):
frappe.respond_as_web_page(_("Confirmed"), _("{0} has been successfully added to our Newsletter list.").format(email))
def send_newsletter(newsletter):
try:
doc = frappe.get_doc("Newsletter", newsletter)
doc.send_bulk()
except:
frappe.db.rollback()
# wasn't able to send emails :(
doc.db_set("email_sent", 0)
frappe.db.commit()
log("send_newsletter")
raise
else:
frappe.db.commit()

View File

@ -1,25 +0,0 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
from __future__ import unicode_literals
import frappe
from frappe.utils.scheduler import log
def send_newsletter(newsletter):
try:
doc = frappe.get_doc("Newsletter", newsletter)
doc.send_bulk()
except:
frappe.db.rollback()
# wasn't able to send emails :(
doc.db_set("email_sent", 0)
frappe.db.commit()
log("send_newsletter")
raise
else:
frappe.db.commit()