diff --git a/addons/portal_project_issue/__openerp__.py b/addons/portal_project_issue/__openerp__.py index 46af01b9a6d..17ba4b0d5aa 100644 --- a/addons/portal_project_issue/__openerp__.py +++ b/addons/portal_project_issue/__openerp__.py @@ -42,8 +42,5 @@ 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 20c581881a6..97a5c9d2b2f 100644 --- a/addons/portal_project_issue/portal_project_issue_view.xml +++ b/addons/portal_project_issue/portal_project_issue_view.xml @@ -27,8 +27,8 @@
-
+ +
Creation: 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 deleted file mode 100644 index edd0d04532a..00000000000 --- a/addons/portal_project_issue/static/src/js/portal_project_issue.js +++ /dev/null @@ -1,31 +0,0 @@ -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(); - }); - }); - } - } - }); -}; diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index 510fcbb99e7..978d3012b26 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -1,25 +1,61 @@ openerp.project = function(openerp) { openerp.web_kanban.KanbanView.include({ - on_groups_started: function() { + project_display_members_names: function() { + /* + * Set avatar title for members. + * In kanban views, many2many fields only return a list of ids. + * We can implement return value of m2m fields like [(1,"Adminstration"),...]. + */ var self = this; - self._super.apply(this, arguments); - if (this.dataset.model === 'project.project') { - /* Set avatar title for members. - In many2many fields, returns only list of ids. - we can implement return value of m2m fields like [(1,"Adminstration"),...]. - */ - var members_ids = []; - this.$element.find('.oe_kanban_project_avatars img').each(function() { - members_ids.push($(this).data('member_id')); - }); - var dataset = new openerp.web.DataSetSearch(this, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]); - dataset.read_slice(['id', 'name']).then(function(result) { - _.each(result, function(v, k) { - self.$element.find('.oe_kanban_project_avatars img[data-member_id=' + v.id + ']').attr('title', v.name).tipsy({ - offset: 10 - }); + var members_ids = []; + + // Collect members ids + self.$element.find('.oe_kanban_project_avatars img').each(function() { + members_ids.push($(this).data('member_id')); + }); + + // Find their matching names + var dataset = new openerp.web.DataSetSearch(self, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]); + dataset.read_slice(['id', 'name']).then(function(result) { + _.each(result, function(v, k) { + // Set the proper value in the DOM + self.$element.find('.oe_kanban_project_avatars img[data-member_id=' + v.id + ']').attr('title', v.name).tipsy({ + offset: 10 }); }); + }); + }, + project_display_categ_names: function() { + /* + * 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 self = this; + var categ_ids = []; + + // Collect categories ids + self.$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(self, '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(); + }); + }); + }, + on_groups_started: function() { + var self = this; + self._super.apply(self, arguments); + + if (self.dataset.model === 'project.project') { + self.project_display_members_names(); + } else if (self.dataset.model === 'project.task') { + self.project_display_categ_names(); } } }); diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py index 9037523d41e..6ea94b58c66 100644 --- a/addons/project_issue/__openerp__.py +++ b/addons/project_issue/__openerp__.py @@ -38,7 +38,7 @@ and decide on their status as they evolve. 'website': 'http://www.openerp.com', 'images': ['images/issue_analysis.jpeg','images/project_issue.jpeg'], 'depends': [ - 'base_status', + 'base_status', 'crm', 'project', ], @@ -65,6 +65,9 @@ and decide on their status as they evolve. 'auto_install': False, 'application': True, 'certificate' : '001236490750848623845', + 'js': [ + 'static/src/js/project_issue.js', + ], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_issue/static/src/js/project_issue.js b/addons/project_issue/static/src/js/project_issue.js new file mode 100644 index 00000000000..24e5ff7cc49 --- /dev/null +++ b/addons/project_issue/static/src/js/project_issue.js @@ -0,0 +1,13 @@ +openerp.portal_project_issue = function(openerp) { + openerp.web_kanban.KanbanView.include({ + on_groups_started: function() { + var self = this; + self._super.apply(this, arguments); + + if (self.dataset.model === 'project.issue') { + // Load project's categories names from m2m field + self.project_display_categ_names(); + } + } + }); +};