From 9877161b4ca25b6a5c4b07ad2fe9f46077d882ea Mon Sep 17 00:00:00 2001 From: ivan deng Date: Thu, 16 Nov 2017 01:58:38 +0800 Subject: [PATCH] =?UTF-8?q?search=20range=20=E5=AE=8C=E6=88=90pivot=20todo?= =?UTF-8?q?:=E6=97=B6=E5=B7=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_search_range/__openerp__.py | 2 +- .../css/{main.css => app_search_range.css} | 0 app_search_range/static/src/js/pivot.js | 124 +++++++++--------- app_search_range/static/src/js/tree.js | 6 +- .../static/src/xml/pivot_view.xml | 10 +- app_search_range/views/template_view.xml | 2 +- 6 files changed, 71 insertions(+), 73 deletions(-) rename app_search_range/static/src/css/{main.css => app_search_range.css} (100%) diff --git a/app_search_range/__openerp__.py b/app_search_range/__openerp__.py index a95af0fc..8c34b1f0 100644 --- a/app_search_range/__openerp__.py +++ b/app_search_range/__openerp__.py @@ -13,7 +13,7 @@ Search by date or number range in List view and Pivot view -------------------------------------------------- """, - 'depends': ['web'], + 'depends': ['web','app_odoo_customize'], 'data': [ 'views/template_view.xml', # data diff --git a/app_search_range/static/src/css/main.css b/app_search_range/static/src/css/app_search_range.css similarity index 100% rename from app_search_range/static/src/css/main.css rename to app_search_range/static/src/css/app_search_range.css diff --git a/app_search_range/static/src/js/pivot.js b/app_search_range/static/src/js/pivot.js index 0568135e..496cdfee 100644 --- a/app_search_range/static/src/js/pivot.js +++ b/app_search_range/static/src/js/pivot.js @@ -67,69 +67,15 @@ PivotView.include({ format : time.strftime_to_moment_format(l10n.date_format), } - // self.$buttons.find('.app-search').remove(); - - var app_fields = []; - _.each(self.fields, function(value, key, list){ - if (value.store && value.type === "datetime" || value.type === "date") { - app_fields.push([key, value.string]); - } - }); - - if (app_fields.length > 0) { - self.$search_button = $(QWeb.render('odooApp.buttons', {'app_fields': app_fields})) - self.$search_button.find('.app_start_date').datetimepicker(datepickers_options); - self.$search_button.find('.app_end_date').datetimepicker(datepickers_options); - self.$search_button.find('.app_start_date').on('change', function() { - self.tgl_search(); - }); - self.$search_button.find('.app_end_date').on('change', function() { - self.tgl_search(); - }); - self.$search_button.find('.app_select_field').on('change', function() { - self.tgl_search(); - }); - self.$search_button.appendTo($node); - } - - app_fields = []; - _.each(self.fields, function(value, key, list){ - if (value.string && value.string.length > 1 && value.store && (value.type === "integer" || value.type === "float" || value.type === "monetary")) { - app_fields.push([key, value.string]); - } - }); - - - if (app_fields.length > 0) { - self.$search_range = $(QWeb.render('odooApp.SearchRange', {'app_fields': app_fields})) - self.$search_range.find('.app_select_range_field').on('change', function() { - self.tgl_search(); - }); - self.$search_range.find('.app_start_range').on('change', function() { - self.tgl_search(); - }); - self.$search_range.find('.app_end_range').on('change', function() { - self.tgl_search(); - }); - self.$search_range.appendTo($node); - } - - // Dropdown list cho phep chon nhieu + // Dropdown list $(QWeb.render("TGL.TreeSearch.Placeholder", {})).appendTo($node); _.each(ts_context, function(item){ - var field = _.find(self.fields, function(value, key, list){ return value.type == 'many2one' && value.relation && key === item.name; }); - // _.each(self.fields, function(value, key, list){ - // if (value.string && value.string.length > 1 && value.store && (value.type === "integer" || value.type === "float")) { - // app_fields.push([value.name, value.string]); - // } - // }); - if (field) { self.ts_fields.push(item.name); @@ -143,15 +89,73 @@ PivotView.include({ $multi_search.find('li').click(self.tgl_on_button_click.bind(self)); - setTimeout(function(){ - $multi_search.appendTo($('.treesearch_placeholder')); - }, 3000); - - + setTimeout(function(){ + $multi_search.appendTo($('.treesearch_placeholder')); + }, 2000); }); } }); + // self.$buttons.find('.app-search').remove(); + var date_fields = []; + // 增加参数控制app_show_search_date + new Model('ir.config_parameter').call('search_read', [[['key', '=', 'app_show_search_date']], ['value']]).then(function (show) { + if (show.length >= 1 && (show[0]['value'] == "True")) { + _.each(self.fields, function (value, key, list) { + if (value.store && value.type === "datetime" || value.type === "date") { + date_fields.push([key, value.string]); + } + }); + + if (date_fields.length > 0) { + self.$search_button = $(QWeb.render('odooApp.buttons', {'date_fields': date_fields})) + self.$search_button.find('.app_start_date').datetimepicker(datepickers_options); + self.$search_button.find('.app_end_date').datetimepicker(datepickers_options); + self.$search_button.find('.app_start_date').on('change', function () { + self.tgl_search(); + }); + self.$search_button.find('.app_end_date').on('change', function () { + self.tgl_search(); + }); + self.$search_button.find('.app_select_field').on('change', function () { + self.tgl_search(); + }); + setTimeout(function () { + self.$search_button.insertBefore($('.treesearch_placeholder')); + }, 500); + } + } + }); + + var number_fields = []; + + // 增加参数控制app_show_search_number + new Model('ir.config_parameter').call('search_read', [[['key', '=', 'app_show_search_number']], ['value']]).then(function (show) { + if (show.length >= 1 && (show[0]['value'] == "True")) { + number_fields = []; + _.each(self.fields, function (value, key, list) { + if (value.string && value.string.length > 1 && value.store && (value.type === "integer" || value.type === "float" || value.type === "monetary")) { + number_fields.push([key, value.string]); + } + }); + + if (number_fields.length > 0) { + self.$search_range = $(QWeb.render('odooApp.SearchRange', {'number_fields': number_fields})) + self.$search_range.find('.app_select_range_field').on('change', function () { + self.tgl_search(); + }); + self.$search_range.find('.app_start_range').on('change', function () { + self.tgl_search(); + }); + self.$search_range.find('.app_end_range').on('change', function () { + self.tgl_search(); + }); + setTimeout(function () { + self.$search_range.insertBefore($('.treesearch_placeholder')); + }, 500); + } + } + }); }, do_search: function(domain, context, group_by) { diff --git a/app_search_range/static/src/js/tree.js b/app_search_range/static/src/js/tree.js index b37afb17..aa88c29a 100644 --- a/app_search_range/static/src/js/tree.js +++ b/app_search_range/static/src/js/tree.js @@ -52,7 +52,7 @@ ListView.include({ var l10n = _t.database.parameters; var datepickers_options = { - pickTime: false, + pickTime: true, startDate: moment({ y: 1900 }), endDate: moment().add(200, "y"), calendarWeeks: true, @@ -134,7 +134,7 @@ ListView.include({ } }); - // Dropdown list cho phep chon nhieu + // Dropdown list _.each(this.ts_context, function(item){ var field = _.find(self.columns, function(column){ return column.type == 'many2one' && column.relation && column.name === item.name; @@ -213,7 +213,7 @@ ListView.include({ // } // } }); - +// todo: 时区处理 if (self.$search_button) { var start_date = self.$search_button.find('.app_start_date').val(), end_date = self.$search_button.find('.app_end_date').val(), diff --git a/app_search_range/static/src/xml/pivot_view.xml b/app_search_range/static/src/xml/pivot_view.xml index 7b7ae5ef..e6b8a058 100644 --- a/app_search_range/static/src/xml/pivot_view.xml +++ b/app_search_range/static/src/xml/pivot_view.xml @@ -15,11 +15,11 @@ - + - + @@ -78,12 +78,6 @@ - -
diff --git a/app_search_range/views/template_view.xml b/app_search_range/views/template_view.xml index 472ee48a..b6cc479d 100644 --- a/app_search_range/views/template_view.xml +++ b/app_search_range/views/template_view.xml @@ -4,7 +4,7 @@