diff --git a/addons/portal_project_issue/__openerp__.py b/addons/portal_project_issue/__openerp__.py index 17ba4b0d5aa..46af01b9a6d 100644 --- a/addons/portal_project_issue/__openerp__.py +++ b/addons/portal_project_issue/__openerp__.py @@ -42,5 +42,8 @@ portal are installed. 'css': [ 'static/src/css/portal_project_issue.css', ], + 'js': [ + 'static/src/js/portal_project_issue.js', + ], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/portal_project_issue/portal_project_issue_view.xml b/addons/portal_project_issue/portal_project_issue_view.xml index f1f557889f1..20c581881a6 100644 --- a/addons/portal_project_issue/portal_project_issue_view.xml +++ b/addons/portal_project_issue/portal_project_issue_view.xml @@ -25,9 +25,10 @@
Creation: diff --git a/addons/portal_project_issue/static/src/css/portal_project_issue.css b/addons/portal_project_issue/static/src/css/portal_project_issue.css index d59b281d094..cfc871748d8 100644 --- a/addons/portal_project_issue/static/src/css/portal_project_issue.css +++ b/addons/portal_project_issue/static/src/css/portal_project_issue.css @@ -30,3 +30,22 @@ .oe_portal_project_issue .oe_fold_column.oe_kanban_record .oe_kanban_footer_left { height: 24px; } + +/* many2many tags */ +.oe_portal_project_issue * span.oe_form_field_many2manytags_box { + display: none; /* display it only after the names have been set - cf. portal_project_issue.js */ + border-radius: 2px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + position: relative; + float: left; + border: 1px solid #9DACCC; + background: #E2E6F0; + color: black; + padding: 0px 3px 0px 3px; + margin: 0 2px 2px 0; + height: 16px; + font: 11px "lucida grande", tahoma, verdana, arial, sans-serif; +} diff --git a/addons/portal_project_issue/static/src/js/portal_project_issue.js b/addons/portal_project_issue/static/src/js/portal_project_issue.js new file mode 100644 index 00000000000..edd0d04532a --- /dev/null +++ b/addons/portal_project_issue/static/src/js/portal_project_issue.js @@ -0,0 +1,31 @@ +openerp.portal_project_issue = function(openerp) { + openerp.web_kanban.KanbanView.include({ + on_groups_started: function() { + var self = this; + self._super.apply(this, arguments); + + if (this.dataset.model === 'project.issue' || this.dataset.model === 'project.task') { + /* + * Set proper names to project categories. + * In kanban views, many2many fields only return a list of ids. + * Therefore, we have to fetch the matching data by ourselves. + */ + var categ_ids = []; + + // Collect categories ids + this.$element.find('.oe_form_field_many2manytags_box').each(function() { + categ_ids.push($(this).data('categ_id')); + }); + + // Find their matching names + var dataset = new openerp.web.DataSetSearch(this, 'project.category', self.session.context, [['id', 'in', _.uniq(categ_ids)]]); + dataset.read_slice(['id', 'name']).then(function(result) { + _.each(result, function(v, k) { + // Set the proper value in the DOM and display the element + self.$element.find('.oe_form_field_many2manytags_box[data-categ_id=' + v.id + ']').text(v.name).toggle(); + }); + }); + } + } + }); +};