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();
+ }
+ }
+ });
+};