From 01c1f2529e3d98088c68bc0039fec44a07c35402 Mon Sep 17 00:00:00 2001 From: Anupam Date: Wed, 17 Nov 2021 17:33:48 +0530 Subject: [PATCH 1/4] fix: lead validate function cleanup --- erpnext/crm/doctype/lead/lead.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index 9a5ef496bb9..a445c90d2d1 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -42,15 +42,13 @@ class Lead(SellingController): def validate(self): self.set_lead_name() self.set_title() - self._prev = frappe._dict({ - "contact_date": frappe.db.get_value("Lead", self.name, "contact_date") if (not cint(self.is_new())) else None, - "ends_on": frappe.db.get_value("Lead", self.name, "ends_on") if (not cint(self.is_new())) else None, - "contact_by": frappe.db.get_value("Lead", self.name, "contact_by") if (not cint(self.is_new())) else None, - }) - self.set_status() self.check_email_id_is_unique() + self.validate_email_id() + self.validate_contact_date() + self.set_prev() + def validate_email_id(self): if self.email_id: if not self.flags.ignore_email_validation: validate_email_address(self.email_id, throw=True) @@ -64,6 +62,7 @@ class Lead(SellingController): if self.is_new() or not self.image: self.image = has_gravatar(self.email_id) + def validate_contact_date(self): if self.contact_date and getdate(self.contact_date) < getdate(nowdate()): frappe.throw(_("Next Contact Date cannot be in the past")) @@ -74,6 +73,16 @@ class Lead(SellingController): def on_update(self): self.add_calendar_event() + def set_prev(self): + if self.is_new(): + self._prev = frappe._dict({ + "contact_date": None, + "ends_on": None, + "contact_by": None + }) + else: + self._prev = frappe.db.get_value("Lead", self.name, ["contact_date", "ends_on", "contact_by"], as_dict=1) + def add_calendar_event(self, opts=None, force=False): super(Lead, self).add_calendar_event({ "owner": self.lead_owner, From 00b1d33ec6d9b143de6273e4a5c8708ef75f25fe Mon Sep 17 00:00:00 2001 From: Anupam Date: Wed, 17 Nov 2021 17:44:42 +0530 Subject: [PATCH 2/4] fix: linter issue --- erpnext/crm/doctype/lead/lead.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index a445c90d2d1..12e81ed6487 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -9,7 +9,6 @@ from frappe.contacts.address_and_contact import load_address_and_contact from frappe.email.inbox import link_communication_to_document from frappe.model.mapper import get_mapped_doc from frappe.utils import ( - cint, comma_and, cstr, getdate, From b876d5b3281ec769a193d08f482f8670db5c5401 Mon Sep 17 00:00:00 2001 From: Anupam Date: Wed, 17 Nov 2021 18:24:32 +0530 Subject: [PATCH 3/4] fix: linter issue --- erpnext/crm/doctype/lead/lead.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index 12e81ed6487..da1ef43cfcd 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -8,15 +8,7 @@ from frappe import _ from frappe.contacts.address_and_contact import load_address_and_contact from frappe.email.inbox import link_communication_to_document from frappe.model.mapper import get_mapped_doc -from frappe.utils import ( - comma_and, - cstr, - getdate, - has_gravatar, - nowdate, - validate_email_address, -) - +from frappe.utils import comma_and, cstr, getdate, has_gravatar, nowdate, validate_email_address from erpnext.accounts.party import set_taxes from erpnext.controllers.selling_controller import SellingController From 8343a1d81e52b026f9ba019ec3f4d6b6fe1c6063 Mon Sep 17 00:00:00 2001 From: Anupam Date: Wed, 17 Nov 2021 18:27:58 +0530 Subject: [PATCH 4/4] fix: linter issue --- erpnext/crm/doctype/lead/lead.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index da1ef43cfcd..770931a2a52 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -9,6 +9,7 @@ from frappe.contacts.address_and_contact import load_address_and_contact from frappe.email.inbox import link_communication_to_document from frappe.model.mapper import get_mapped_doc from frappe.utils import comma_and, cstr, getdate, has_gravatar, nowdate, validate_email_address + from erpnext.accounts.party import set_taxes from erpnext.controllers.selling_controller import SellingController