From 46b63d911f31fe6423bdaafab23313b703492d24 Mon Sep 17 00:00:00 2001 From: pateljannat Date: Mon, 21 Dec 2020 11:09:23 +0530 Subject: [PATCH 1/4] fix: letter head disabled and default validation issues --- frappe/printing/doctype/letter_head/letter_head.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/frappe/printing/doctype/letter_head/letter_head.py b/frappe/printing/doctype/letter_head/letter_head.py index 491d959755..ac779d5688 100644 --- a/frappe/printing/doctype/letter_head/letter_head.py +++ b/frappe/printing/doctype/letter_head/letter_head.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals import frappe from frappe.utils import is_image from frappe.model.document import Document +from frappe import _ class LetterHead(Document): def before_insert(self): @@ -13,8 +14,14 @@ class LetterHead(Document): def validate(self): self.set_image() - if not self.is_default: - if not frappe.db.sql("""select count(*) from `tabLetter Head` where ifnull(is_default,0)=1"""): + self.validate_disabled_and_default() + + def validate_disabled_and_default(self): + if self.disabled and self.is_default: + frappe.throw(_("Letter Head cannot be both, {0} and {1}").format(frappe.bold("Disabled"), frappe.bold("Default"))) + + if not self.is_default and not self.disabled: + if not frappe.db.sql("""select count(*) from `tabLetter Head` where ifnull(is_default,0)=1""")[0][0]: self.is_default = 1 def set_image(self): From 3a112f8a09665a68c7e54fcdce7dafee9ccaa65e Mon Sep 17 00:00:00 2001 From: pateljannat Date: Thu, 7 Jan 2021 11:13:09 +0530 Subject: [PATCH 2/4] fix: orm and message --- frappe/printing/doctype/letter_head/letter_head.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/printing/doctype/letter_head/letter_head.py b/frappe/printing/doctype/letter_head/letter_head.py index ac779d5688..0ea1d2f242 100644 --- a/frappe/printing/doctype/letter_head/letter_head.py +++ b/frappe/printing/doctype/letter_head/letter_head.py @@ -18,10 +18,10 @@ class LetterHead(Document): def validate_disabled_and_default(self): if self.disabled and self.is_default: - frappe.throw(_("Letter Head cannot be both, {0} and {1}").format(frappe.bold("Disabled"), frappe.bold("Default"))) + frappe.throw(_("Letter Head cannot be both disabled and default")) if not self.is_default and not self.disabled: - if not frappe.db.sql("""select count(*) from `tabLetter Head` where ifnull(is_default,0)=1""")[0][0]: + if not frappe.db.exists('Letter Head', dict(is_default=1)): self.is_default = 1 def set_image(self): From f4dcf5e05eae9ea72853f31495f756a13ac5ff01 Mon Sep 17 00:00:00 2001 From: pateljannat Date: Mon, 21 Dec 2020 11:09:23 +0530 Subject: [PATCH 3/4] fix: letter head disabled and default validation issues --- frappe/printing/doctype/letter_head/letter_head.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/frappe/printing/doctype/letter_head/letter_head.py b/frappe/printing/doctype/letter_head/letter_head.py index 491d959755..ac779d5688 100644 --- a/frappe/printing/doctype/letter_head/letter_head.py +++ b/frappe/printing/doctype/letter_head/letter_head.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals import frappe from frappe.utils import is_image from frappe.model.document import Document +from frappe import _ class LetterHead(Document): def before_insert(self): @@ -13,8 +14,14 @@ class LetterHead(Document): def validate(self): self.set_image() - if not self.is_default: - if not frappe.db.sql("""select count(*) from `tabLetter Head` where ifnull(is_default,0)=1"""): + self.validate_disabled_and_default() + + def validate_disabled_and_default(self): + if self.disabled and self.is_default: + frappe.throw(_("Letter Head cannot be both, {0} and {1}").format(frappe.bold("Disabled"), frappe.bold("Default"))) + + if not self.is_default and not self.disabled: + if not frappe.db.sql("""select count(*) from `tabLetter Head` where ifnull(is_default,0)=1""")[0][0]: self.is_default = 1 def set_image(self): From 10f620572dbe922d44f21580a27d51172b08ae23 Mon Sep 17 00:00:00 2001 From: pateljannat Date: Thu, 7 Jan 2021 11:13:09 +0530 Subject: [PATCH 4/4] fix: orm and message --- frappe/printing/doctype/letter_head/letter_head.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/printing/doctype/letter_head/letter_head.py b/frappe/printing/doctype/letter_head/letter_head.py index ac779d5688..0ea1d2f242 100644 --- a/frappe/printing/doctype/letter_head/letter_head.py +++ b/frappe/printing/doctype/letter_head/letter_head.py @@ -18,10 +18,10 @@ class LetterHead(Document): def validate_disabled_and_default(self): if self.disabled and self.is_default: - frappe.throw(_("Letter Head cannot be both, {0} and {1}").format(frappe.bold("Disabled"), frappe.bold("Default"))) + frappe.throw(_("Letter Head cannot be both disabled and default")) if not self.is_default and not self.disabled: - if not frappe.db.sql("""select count(*) from `tabLetter Head` where ifnull(is_default,0)=1""")[0][0]: + if not frappe.db.exists('Letter Head', dict(is_default=1)): self.is_default = 1 def set_image(self):