From 76a12ca5b60c3cd6899ce70b54bd588ca539c272 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Thu, 3 Aug 2017 17:02:30 +0530 Subject: [PATCH 1/4] Handle error when _user_tags column is added on the fly (#3854) --- frappe/desk/reportview.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index fbb363300f..2cfbbf8ffd 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -240,7 +240,12 @@ def get_stats(stats, doctype, filters=[]): filters = json.loads(filters) stats = {} - columns = frappe.db.get_table_columns(doctype) + try: + columns = frappe.db.get_table_columns(doctype) + except MySQLdb.OperationalError: + # raised when _user_tags column is added on the fly + columns = [] + for tag in tags: if not tag in columns: continue try: From b524d892f7c60de0477fb306477a0706b4a449c6 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 3 Aug 2017 17:02:47 +0530 Subject: [PATCH 2/4] Add where clause only if conditions exists (#3853) --- frappe/database.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frappe/database.py b/frappe/database.py index 9b9e9e1446..0f0900678e 100644 --- a/frappe/database.py +++ b/frappe/database.py @@ -600,8 +600,9 @@ class Database: order_by = ("order by " + order_by) if order_by else "" - r = self.sql("select {0} from `tab{1}` where {2} {3}".format(fl, doctype, - conditions, order_by), values, as_dict=as_dict, debug=debug, update=update) + r = self.sql("select {0} from `tab{1}` {2} {3} {4}" + .format(fl, doctype, "where" if conditions else "", conditions, order_by), values, + as_dict=as_dict, debug=debug, update=update) return r From 5925aada697c89ea998d1e89994547e03dedd1ee Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Fri, 4 Aug 2017 10:55:38 +0530 Subject: [PATCH 3/4] Added order by in_create for dynamic link query (#3849) --- frappe/model/dynamic_links.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/frappe/model/dynamic_links.py b/frappe/model/dynamic_links.py index 0932ffa623..c34dd914ef 100644 --- a/frappe/model/dynamic_links.py +++ b/frappe/model/dynamic_links.py @@ -8,19 +8,21 @@ import frappe # For example Journal Entry should be validated before GL Entry (which is an internal doctype) dynamic_link_queries = [ - """select parent, - (select read_only from `tabDocType` where name=tabDocField.parent) as read_only, - fieldname, options - from tabDocField - where fieldtype='Dynamic Link' - order by read_only""", - - """select dt as parent, - (select read_only from `tabDocType` where name=`tabCustom Field`.dt) as read_only, - fieldname, options - from `tabCustom Field` - where fieldtype='Dynamic Link' - order by read_only""", + """select tabDocField.parent, + `tabDocType`.read_only, `tabDocType`.in_create, + tabDocField.fieldname, tabDocField.options + from tabDocField, `tabDocType` + where `tabDocField`.fieldtype='Dynamic Link' and + `tabDocType`.name=`tabDocField`.parent + order by `tabDocType`.read_only, `tabDocType`.in_create""", + + """select `tabCustom Field`.dt as parent, + `tabDocType`.read_only, `tabDocType`.in_create, + `tabCustom Field`.fieldname, `tabCustom Field`.options + from `tabCustom Field`, `tabDocType` + where `tabCustom Field`.fieldtype='Dynamic Link' and + `tabDocType`.name=`tabCustom Field`.dt + order by `tabDocType`.read_only, `tabDocType`.in_create""", ] def get_dynamic_link_map(for_delete=False): From edfed87e75ae46bb888492d54bde9222ccd8f52f Mon Sep 17 00:00:00 2001 From: mbauskar Date: Fri, 4 Aug 2017 11:32:07 +0600 Subject: [PATCH 4/4] bumped to version 8.6.7 --- frappe/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 914f0ece83..a7bcb38324 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json from .exceptions import * from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template -__version__ = '8.6.6' +__version__ = '8.6.7' __title__ = "Frappe Framework" local = Local()