diff --git a/public/js/wn/views/query_report.js b/public/js/wn/views/query_report.js
index b94c18437f..67733a3a0a 100644
--- a/public/js/wn/views/query_report.js
+++ b/public/js/wn/views/query_report.js
@@ -113,7 +113,7 @@ wn.views.QueryReport = Class.extend({
},
setup_filters: function() {
this.clear_filters();
- var $filter_wrapper = $("
\
+ var $filter_wrapper = $("
\
")
.appendTo(this.appframe.$w.find('.appframe-toolbar'));
var me = this;
@@ -124,12 +124,22 @@ wn.views.QueryReport = Class.extend({
f.with_label = 0;
f.in_filter = 1;
f.refresh();
- $(f.wrapper).attr("title", df.label).tooltip();
+ $(f.wrapper)
+ .css({
+ "display": "inline-block",
+ "margin-left": "5px",
+ "margin-bottom": "2px"
+ })
+ .attr("title", df.label).tooltip();
me.filters.push(f);
if(df["default"]) {
f.set_input(df["default"]);
}
- $(f.wrapper).find("input, button").css({"margin-top":"-4px"});
+
+ if(f.df.fieldtype == "Link")
+ $(f.wrapper).find("input, button").css({"margin-top":"-4px"});
+ else if(f.df.fieldtype == "Date")
+ $(f.wrapper).css({"margin-right":"-15px"});
});
},
clear_filters: function() {
diff --git a/webnotes/db.py b/webnotes/db.py
index 1aebbab59a..925ceb1a5e 100644
--- a/webnotes/db.py
+++ b/webnotes/db.py
@@ -99,13 +99,18 @@ class Database:
values = dict(values)
if debug:
try:
+ self.explain_query(query, values)
webnotes.errprint(query % values)
except TypeError:
webnotes.errprint([query, values])
+
self._cursor.execute(query, values)
else:
- if debug: webnotes.errprint(query)
+ if debug:
+ self.explain_query(query)
+ webnotes.errprint(query)
+
self._cursor.execute(query)
except Exception, e:
# ignore data definition errors
@@ -129,6 +134,16 @@ class Database:
return self.convert_to_lists(self._cursor.fetchall(), formatted, as_utf8)
else:
return self._cursor.fetchall()
+
+ def explain_query(self, query, values=None):
+ webnotes.errprint("--- query explain ---")
+ if values is None:
+ self._cursor.execute("explain " + query)
+ else:
+ self._cursor.execute("explain " + query, values)
+ import json
+ webnotes.errprint(json.dumps(self.fetch_as_dict(), indent=1))
+ webnotes.errprint("--- query explain end ---")
def sql_list(self, query, values=(), debug=False):
return [r[0] for r in self.sql(query, values, debug=debug)]