From 8b1a062c99187316fbbe5dcdcc61bf813eafd77f Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 7 Sep 2012 17:33:30 +0200 Subject: [PATCH 1/5] [IMP] kanban : Improve the opening on global bock. Add a class 'oe_kanban_global_click_edit' has same methods of 'oe_kanban_global_click' but open in form/edit view ; Improve display of menu dropdown bzr revid: chm@openerp.com-20120907153330-2dmzfiy9vwtb36uv --- addons/web/static/src/css/base.css | 1 + addons/web/static/src/css/base.sass | 1 + addons/web_kanban/static/src/css/kanban.css | 1 + addons/web_kanban/static/src/css/kanban.sass | 1 + addons/web_kanban/static/src/js/kanban.js | 11 +++++++++-- 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 226ccbd3513..1256ffef6f9 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -689,6 +689,7 @@ .openerp .oe_dropdown_toggle { color: #404040; font-weight: normal; + display:inline-block; } .openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened { display: block; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 13f740f218c..ac73f3de045 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -559,6 +559,7 @@ $sheet-max-width: 860px .oe_dropdown_toggle color: #404040 font-weight: normal + display:inline-block .oe_dropdown_hover:hover .oe_dropdown_menu, .oe_dropdown_menu.oe_opened display: block .oe_dropdown_menu diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 345becc7cdd..7f209e9f60a 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -134,6 +134,7 @@ margin-left: 4px; cursor: pointer; position: relative; + display: inline-block; top: -8px; } .openerp .oe_kanban_view .oe_kanban_add { diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index b85d3ebea03..1878b86925b 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -148,6 +148,7 @@ margin-left: 4px cursor: pointer position: relative + display: inline-block top: -8px .oe_kanban_add float: right diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 0cef134d95b..c2a0244fd21 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -757,7 +757,7 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({ } }); - if (this.$el.find('.oe_kanban_global_click').length) { + if (this.$el.find('.oe_kanban_global_click,.oe_kanban_global_click_edit').length) { this.$el.on('click', function(ev) { if (!ev.isTrigger && !$(ev.target).data('events')) { var trigger = true; @@ -798,8 +798,15 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({ }); } }, + /* actions when user click on the block with a specific class + * open on normal view : oe_kanban_global_click + * open on form/edit view : oe_kanban_global_click_edit + */ on_card_clicked: function(ev) { - this.view.open_record(this.id); + if(this.$el.find('.oe_kanban_global_click_edit').size()>0) + this.do_action_edit(); + else + this.do_action_open(); }, setup_color_picker: function() { var self = this; From ae0c3cf8a17729e6578386a561a1be4d8de6f063 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 11 Sep 2012 11:52:06 +0200 Subject: [PATCH 2/5] [IMP] kanban: add a transform_list_many2many method. This method can display list of item like tags on the kanban view bzr revid: chm@openerp.com-20120911095206-scdrbqrj37hbw765 --- addons/web_kanban/static/src/js/kanban.js | 40 +++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index c2a0244fd21..fe03adca4bf 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -163,6 +163,44 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ } } }, + transform_list_many2many: function(){ + var self = this; + + /* Set the lists of tag/categories */ + var blocks = self.$el.find('.oe_kanban_list_many2many'); + for(var i=0;i0){ + // request + var dataset = new instance.web.DataSetSearch(self, model, self.session.context); + dataset.name_get(_.uniq(list_ids)).then( + function(result) { + for(var t=0;t Date: Tue, 11 Sep 2012 12:18:05 +0200 Subject: [PATCH 3/5] [IMP] kanban: transform_list_many2many : only one request by model bzr revid: chm@openerp.com-20120911101805-basl7y3zdeg0cb5u --- addons/web_kanban/static/src/js/kanban.js | 27 ++++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index fe03adca4bf..21f5e90369e 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -166,6 +166,8 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ transform_list_many2many: function(){ var self = this; + var arg={}; + /* Set the lists of tag/categories */ var blocks = self.$el.find('.oe_kanban_list_many2many'); for(var i=0;i1){ - // select all ids - var list_ids = []; - block.find('[data-list_id]').each(function() { - list_ids.push( $(this).data('list_id') ); - }); + if(!arg[model]) arg[model]=[]; + // select all ids + block.find('[data-list_id]').each(function() { + arg[model].push( $(this).data('list_id') ); + }); + } - if(list_ids.length>0){ - // request + } + + // only one request by model + for(var model in arg){ + if(arg[model].length>0){ var dataset = new instance.web.DataSetSearch(self, model, self.session.context); - dataset.name_get(_.uniq(list_ids)).then( + dataset.name_get(_.uniq( arg[model] )).then( function(result) { for(var t=0;t Date: Wed, 12 Sep 2012 10:17:29 +0200 Subject: [PATCH 4/5] [IMP] kanban: new widget 'many2many_tags' for kanban view. Call by : '
' bzr revid: chm@openerp.com-20120912081729-j6a77wqopbu3ked4 --- addons/web_kanban/static/src/js/kanban.js | 43 ++++++++++++++++++++--- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 21f5e90369e..2593d74a7aa 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -163,9 +163,43 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ } } }, + /* widget for list of tags/categories... + * make :
+ */ + transform_widget_many2many: function(){ + var self=this, + arg={}; + // select all widget + self.$el.find("[widget='many2many_tags']").each(function(){ + var model = $(this).attr("model"), + data = $(this).attr("data"), + list = data.split(","); + //select all id (per model) + if(!arg[model]) arg[model]=[]; + for(var t=0;t0){ + var dataset = new instance.web.DataSetSearch(self, model, self.session.context); + dataset.name_get(_.uniq( arg[model] )).then( + function(result) { + for(var t=0;t'+result[t][1]+''); + } + }, + function(r){ + console.log('Error',r); + } + ); + } + } + }, transform_list_many2many: function(){ var self = this; - var arg={}; /* Set the lists of tag/categories */ @@ -195,7 +229,8 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ dataset.name_get(_.uniq( arg[model] )).then( function(result) { for(var t=0;t Date: Fri, 14 Sep 2012 10:18:46 +0200 Subject: [PATCH 5/5] [IMP] kanban: delete one method for widget=many2many_tag bzr revid: chm@openerp.com-20120914081846-oi9h8mnmmefl9p3y --- addons/web/static/src/js/view_form.js | 1 + addons/web_kanban/static/src/js/kanban.js | 43 ----------------------- 2 files changed, 1 insertion(+), 43 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index f65da67d8fb..c8e51f20df9 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -4773,6 +4773,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ } this.render_elements(); } + console.log('end selection'); }, /** Renders the widget. This function also checks for statusbar_colors='{"pending": "blue"}' * attribute in the widget. This allows to set a given color to a given diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 2593d74a7aa..4574d95c520 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -198,48 +198,6 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ } } }, - transform_list_many2many: function(){ - var self = this; - var arg={}; - - /* Set the lists of tag/categories */ - var blocks = self.$el.find('.oe_kanban_list_many2many'); - for(var i=0;i1){ - - if(!arg[model]) arg[model]=[]; - - // select all ids - block.find('[data-list_id]').each(function() { - arg[model].push( $(this).data('list_id') ); - }); - } - - } - - // only one request by model - for(var model in arg){ - if(arg[model].length>0){ - var dataset = new instance.web.DataSetSearch(self, model, self.session.context); - dataset.name_get(_.uniq( arg[model] )).then( - function(result) { - for(var t=0;t