fix in filters of query report, also added explain query when using debug

This commit is contained in:
Anand Doshi 2013-03-22 13:11:18 +05:30
parent 16f56c9fb5
commit 2c5ceffd2c
2 changed files with 29 additions and 4 deletions

View file

@ -113,7 +113,7 @@ wn.views.QueryReport = Class.extend({
},
setup_filters: function() {
this.clear_filters();
var $filter_wrapper = $("<div class='filters' style='display:inline-block; margin-left: 5px;'>\
var $filter_wrapper = $("<div class='filters' style='display:inline-block;'>\
</div>")
.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() {

View file

@ -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)]