refactor(member): drop email column
* remove email column
* update controller methods
* add patch to add value from email to email_id
diff --git a/erpnext/non_profit/doctype/member/member.json b/erpnext/non_profit/doctype/member/member.json
index 992ef16..f190cfa 100644
--- a/erpnext/non_profit/doctype/member/member.json
+++ b/erpnext/non_profit/doctype/member/member.json
@@ -12,7 +12,6 @@
"membership_expiry_date",
"column_break_5",
"membership_type",
- "email",
"email_id",
"image",
"customer_section",
@@ -65,13 +64,6 @@
"reqd": 1
},
{
- "fieldname": "email",
- "fieldtype": "Link",
- "in_list_view": 1,
- "label": "User",
- "options": "User"
- },
- {
"fieldname": "image",
"fieldtype": "Attach Image",
"hidden": 1,
@@ -178,7 +170,7 @@
],
"image_field": "image",
"links": [],
- "modified": "2020-09-16 23:44:13.596948",
+ "modified": "2020-11-09 12:12:10.174647",
"modified_by": "Administrator",
"module": "Non Profit",
"name": "Member",
diff --git a/erpnext/non_profit/doctype/membership/membership.py b/erpnext/non_profit/doctype/membership/membership.py
index 97de63b..36f68bc 100644
--- a/erpnext/non_profit/doctype/membership/membership.py
+++ b/erpnext/non_profit/doctype/membership/membership.py
@@ -24,7 +24,7 @@
user = frappe.get_doc('User', frappe.session.user)
member = frappe.get_doc(dict(
doctype='Member',
- email=frappe.session.user,
+ email_id=frappe.session.user,
membership_type=self.membership_type,
member_name=user.get_fullname()
)).insert(ignore_permissions=True)
@@ -97,8 +97,12 @@
frappe.throw(_("You need to enable <b>Send Acknowledge Email</b> in Membership Settings"))
member = frappe.get_doc("Member", self.member)
+
+ if not member.email_id:
+ frappe.throw(_("Email address of member {0} is missing").format(frappe.utils.get_link_to_form("Member", self.member)))
+
plan = frappe.get_doc("Membership Type", self.membership_type)
- email = member.email_id if member.email_id else member.email
+ email = member.email_id
attachments = [frappe.attach_print("Membership", self.name, print_format=settings.membership_print_format)]
if self.invoice and settings.send_invoice:
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 34dbdd0..a9cd25f 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -733,4 +733,5 @@
erpnext.patches.v13_0.set_payment_channel_in_payment_gateway_account
erpnext.patches.v13_0.create_healthcare_custom_fields_in_stock_entry_detail
erpnext.patches.v13_0.update_reason_for_resignation_in_employee
-execute:frappe.delete_doc("Report", "Quoted Item Comparison")
\ No newline at end of file
+execute:frappe.delete_doc("Report", "Quoted Item Comparison")
+erpnext.patches.v13_0.update_member_email_address
\ No newline at end of file
diff --git a/erpnext/patches/v13_0/update_member_email_address.py b/erpnext/patches/v13_0/update_member_email_address.py
new file mode 100644
index 0000000..da7828a
--- /dev/null
+++ b/erpnext/patches/v13_0/update_member_email_address.py
@@ -0,0 +1,19 @@
+# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
+# MIT License. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+ """add value to email_id column from email"""
+
+ if frappe.db.has_column("Member", "email"):
+ # Get all members
+ for member in frappe.db.get_all("Member", pluck="name"):
+ # Check if email_id already exists
+ if not frappe.db.get_value("Member", member, "email_id"):
+ # fetch email id from the user linked field email
+ email = frappe.db.get_value("Member", member, "email")
+
+ # Set the value for it
+ frappe.db.set_value("Member", member, "email_id", email)