From 84be09f93af75702cdb748cacff5a3eebe409f3e Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Mon, 20 Dec 2021 16:50:53 +0530 Subject: [PATCH] fix: convert raw sql to frappe.qb --- frappe/website/doctype/blog_post/blog_post.py | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/frappe/website/doctype/blog_post/blog_post.py b/frappe/website/doctype/blog_post/blog_post.py index 5d5e9e11c4..9ac51133fa 100644 --- a/frappe/website/doctype/blog_post/blog_post.py +++ b/frappe/website/doctype/blog_post/blog_post.py @@ -217,18 +217,24 @@ def get_list_context(context=None): def get_blog_categories(): - return frappe.db.sql(""" - SELECT `name`, `route`, `title` - FROM `tabBlog Category` - WHERE `published` = 1 - AND EXISTS ( - SELECT `name` - FROM `tabBlog Post` - WHERE `tabBlog Post`.`blog_category` = `tabBlog Category`.`name` - AND `published` = 1 + from pypika import Order + from pypika.terms import ExistsCriterion + + post, category = frappe.qb.DocType("Blog Post"), frappe.qb.DocType("Blog Category") + return ( + frappe.qb.from_(category) + .select(category.name, category.route, category.title) + .where( + (category.published == 1) + & ExistsCriterion( + frappe.qb.from_(post) + .select("name") + .where((post.published == 1) & (post.blog_category == category.name)) ) - ORDER BY `title` asc - """, as_dict=1) + ) + .orderby(category.title, order=Order.asc) + .run(as_dict=1) + ) def clear_blog_cache(): for blog in frappe.db.sql_list("""select route from