[newsletter-list] fixes, patch fix
diff --git a/erpnext/crm/doctype/newsletter_list/newsletter_list.js b/erpnext/crm/doctype/newsletter_list/newsletter_list.js
index 8843769..ed0ac5e 100644
--- a/erpnext/crm/doctype/newsletter_list/newsletter_list.js
+++ b/erpnext/crm/doctype/newsletter_list/newsletter_list.js
@@ -21,6 +21,22 @@
}, __("Import Subscribers"), __("Import"));
});
+ frm.add_custom_button(__("Add Subscribers"), function() {
+ frappe.prompt({fieldtype:"Text",
+ label:__("Email Ids"), fieldname:"email_list", reqd:1}, function(data) {
+ frappe.call({
+ method: "erpnext.crm.doctype.newsletter_list.newsletter_list.add_subscribers",
+ args: {
+ "name": frm.doc.name,
+ "email_list": data.email_list
+ },
+ callback: function(r) {
+ frm.set_value("total_subscribers", r.message);
+ }
+ })
+ }, __("Add Subscribers"), __("Add"));
+ });
+
frm.add_custom_button(__("New Newsletter"), function() {
frappe.route_options = {"newsletter_list": frm.doc.name};
new_doc("Newsletter");
diff --git a/erpnext/crm/doctype/newsletter_list/newsletter_list.py b/erpnext/crm/doctype/newsletter_list/newsletter_list.py
index 583798d..010678a 100644
--- a/erpnext/crm/doctype/newsletter_list/newsletter_list.py
+++ b/erpnext/crm/doctype/newsletter_list/newsletter_list.py
@@ -5,6 +5,8 @@
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
+from frappe.utils import validate_email_add
+from frappe import _
class NewsletterList(Document):
def onload(self):
@@ -35,7 +37,7 @@
if e.args[0]!=1062:
raise
- frappe.msgprint(frappe._("{0} subscribers added").format(added))
+ frappe.msgprint(_("{0} subscribers added").format(added))
return self.update_total_subscribers()
@@ -50,3 +52,29 @@
nlist = frappe.get_doc("Newsletter List", name)
if nlist.has_permission("write"):
return nlist.import_from(doctype)
+
+@frappe.whitelist()
+def add_subscribers(name, email_list):
+ count = 0
+ for email in email_list.replace(",", "\n").split("\n"):
+ email = email.strip()
+ if not validate_email_add(email):
+ frappe.throw(_("Invalid Email '{0}'").format(email))
+
+ if email:
+ try:
+ frappe.get_doc({
+ "doctype": "Newsletter List Subscriber",
+ "newsletter_list": name,
+ "email": email
+ }).insert()
+
+ count += 1
+ except Exception, e:
+ # ignore duplicate
+ if e.args[0] != 1062:
+ raise
+
+ frappe.msgprint(_("{0} subscribers added").format(count))
+
+ return frappe.get_doc("Newsletter List", name).update_total_subscribers()
diff --git a/erpnext/patches/v5_0/rename_customer_issue.py b/erpnext/patches/v5_0/rename_customer_issue.py
index 68bab3f..5b16fd2 100644
--- a/erpnext/patches/v5_0/rename_customer_issue.py
+++ b/erpnext/patches/v5_0/rename_customer_issue.py
@@ -1,5 +1,5 @@
import frappe
def execute():
- if frappe.db.table_exists("tabCustomer Issue"):
+ if frappe.db.table_exists("Customer Issue"):
frappe.rename_doc("DocType", "Customer Issue", "Warranty Claim")