From 2c5ceffd2c77ec981cae4567b2a26c190731f1a2 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 22 Mar 2013 13:11:18 +0530 Subject: [PATCH] fix in filters of query report, also added explain query when using debug --- public/js/wn/views/query_report.js | 16 +++++++++++++--- webnotes/db.py | 17 ++++++++++++++++- 2 files changed, 29 insertions(+), 4 deletions(-) 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)]