From d20120e649d814d37a4e5ee6387c6be6c72faf3e Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 17 Sep 2015 17:46:37 +0530 Subject: [PATCH] [fix] remove duplicate newsletter subscribers --- erpnext/patches.txt | 3 ++- erpnext/patches/v6_2/__init__.py | 1 + erpnext/patches/v6_2/remove_newsletter_duplicates.py | 12 ++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 erpnext/patches/v6_2/__init__.py create mode 100644 erpnext/patches/v6_2/remove_newsletter_duplicates.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index ffb7a21b5f..98c6f457f4 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -206,4 +206,5 @@ execute:frappe.db.set_value("Stock Settings", None, "automatically_set_serial_no execute:frappe.db.sql("""update `tabProject` set percent_complete=round(percent_complete, 2) where percent_complete is not null""") erpnext.patches.v6_0.fix_outstanding_amount erpnext.patches.v6_0.fix_planned_qty -erpnext.patches.v6_0.multi_currency \ No newline at end of file +erpnext.patches.v6_0.multi_currency +erpnext.patches.v6_2.remove_newsletter_duplicates diff --git a/erpnext/patches/v6_2/__init__.py b/erpnext/patches/v6_2/__init__.py new file mode 100644 index 0000000000..baffc48825 --- /dev/null +++ b/erpnext/patches/v6_2/__init__.py @@ -0,0 +1 @@ +from __future__ import unicode_literals diff --git a/erpnext/patches/v6_2/remove_newsletter_duplicates.py b/erpnext/patches/v6_2/remove_newsletter_duplicates.py new file mode 100644 index 0000000000..4f25c95777 --- /dev/null +++ b/erpnext/patches/v6_2/remove_newsletter_duplicates.py @@ -0,0 +1,12 @@ +import frappe + +def execute(): + duplicates = frappe.db.sql("""select newsletter_list, email, count(name) + from `tabNewsletter List Subscriber` + group by newsletter_list, email + having count(name) > 1""") + + # delete all duplicates except 1 + for newsletter_list, email, count in duplicates: + frappe.db.sql("""delete from `tabNewsletter List Subscriber` + where newsletter_list=%s and email=%s limit %s""", (newsletter_list, email, count-1))