diff --git a/frappe/website/doctype/help_article/test_help_article.py b/frappe/website/doctype/help_article/test_help_article.py index a7576c7168..b17a8eda8f 100644 --- a/frappe/website/doctype/help_article/test_help_article.py +++ b/frappe/website/doctype/help_article/test_help_article.py @@ -39,6 +39,18 @@ class TestHelpArticle(FrappeTestCase): self.assertEqual(self.help_article.helpful, 1) self.assertEqual(self.help_article.not_helpful, 1) + def test_category_disable(self): + self.help_article.load_from_db() + self.help_article.published = 1 + self.help_article.save() + + self.help_category.load_from_db() + self.help_category.published = 0 + self.help_category.save() + + self.help_article.load_from_db() + self.assertEqual(self.help_article.published, 0) + @classmethod def tearDownClass(cls) -> None: frappe.delete_doc(cls.help_article.doctype, cls.help_article.name) diff --git a/frappe/website/doctype/help_category/help_category.py b/frappe/website/doctype/help_category/help_category.py index 7c78ff3d46..10efcb30e7 100644 --- a/frappe/website/doctype/help_category/help_category.py +++ b/frappe/website/doctype/help_category/help_category.py @@ -32,6 +32,11 @@ class HelpCategory(WebsiteGenerator): def validate(self): self.set_route() + # disable help articles of this category + if not self.published: + for d in frappe.get_all("Help Article", dict(category=self.name)): + frappe.db.set_value("Help Article", d.name, "published", 0) + def set_route(self): if not self.route: self.route = "kb/" + self.scrub(self.category_name)