diff --git a/web_widget_x2many_2d_matrix/static/src/js/2d_matrix_renderer.js b/web_widget_x2many_2d_matrix/static/src/js/2d_matrix_renderer.js
index 187550f6c..21a3adc9e 100644
--- a/web_widget_x2many_2d_matrix/static/src/js/2d_matrix_renderer.js
+++ b/web_widget_x2many_2d_matrix/static/src/js/2d_matrix_renderer.js
@@ -220,7 +220,7 @@ odoo.define('web_widget_x2many_2d_matrix.X2Many2dMatrixRenderer', function (requ
*/
_renderLabelCell: function (record) {
var $td = $('
');
- var value = record.data[this.matrix_data.field_y_axis];
+ var value = record.data[this.matrix_data.field_label_y_axis];
if (value.type === 'record') {
// We have a related record
value = value.data.display_name;
diff --git a/web_widget_x2many_2d_matrix/static/src/js/widget_x2many_2d_matrix.js b/web_widget_x2many_2d_matrix/static/src/js/widget_x2many_2d_matrix.js
index a8b336da1..8f639ae5b 100644
--- a/web_widget_x2many_2d_matrix/static/src/js/widget_x2many_2d_matrix.js
+++ b/web_widget_x2many_2d_matrix/static/src/js/widget_x2many_2d_matrix.js
@@ -94,8 +94,8 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) {
this.x_axis = [];
this.y_axis = [];
_.each(records, function (record) {
- var x = record.data[this.field_x_axis],
- y = record.data[this.field_y_axis];
+ var x = record.data[this.field_label_x_axis],
+ y = record.data[this.field_label_y_axis];
if (x.type === 'record') {
// We have a related record
x = x.data.display_name;
@@ -126,6 +126,8 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) {
'field_value': this.field_value,
'field_x_axis': this.field_x_axis,
'field_y_axis': this.field_y_axis,
+ 'field_label_x_axis': this.field_label_x_axis,
+ 'field_label_y_axis': this.field_label_y_axis,
'columns': this.columns,
'rows': this.rows,
'show_row_totals': this.show_row_totals,
diff --git a/web_widget_x2many_2d_matrix_example/models/__init__.py b/web_widget_x2many_2d_matrix_example/models/__init__.py
index bf8b6ac47..40f134705 100644
--- a/web_widget_x2many_2d_matrix_example/models/__init__.py
+++ b/web_widget_x2many_2d_matrix_example/models/__init__.py
@@ -1,2 +1,3 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import x2m_demo
+from . import res_users
diff --git a/web_widget_x2many_2d_matrix_example/models/res_users.py b/web_widget_x2many_2d_matrix_example/models/res_users.py
new file mode 100644
index 000000000..d7e6b0859
--- /dev/null
+++ b/web_widget_x2many_2d_matrix_example/models/res_users.py
@@ -0,0 +1,13 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+from odoo import models, api, fields
+
+
+class ResUsers(models.Model):
+ _inherit = 'res.users'
+
+ matrix_display_name = fields.Char(compute="_compute_matrix_display_name")
+
+ @api.depends("name", "email")
+ def _compute_matrix_display_name(self):
+ for user in self:
+ user.matrix_display_name = "%s (%s)" % (user.name, user.email)
diff --git a/web_widget_x2many_2d_matrix_example/models/x2m_demo.py b/web_widget_x2many_2d_matrix_example/models/x2m_demo.py
index 1f6a69977..6a13dc58d 100644
--- a/web_widget_x2many_2d_matrix_example/models/x2m_demo.py
+++ b/web_widget_x2many_2d_matrix_example/models/x2m_demo.py
@@ -7,8 +7,16 @@ class X2MDemo(models.Model):
_description = 'X2Many Demo'
name = fields.Char()
+
+ display_name = fields.Char(compute="_compute_display_name")
+
line_ids = fields.One2many('x2m.demo.line', 'demo_id')
+ @api.depends("name")
+ def _compute_display_name(self):
+ for demo in self:
+ demo.display_name = "%s (#%s)" % (demo.name, demo.id)
+
@api.multi
def _open_x2m_matrix(self, view_xmlid):
wiz = self.env['x2m.matrix.demo.wiz'].create({})
@@ -46,7 +54,9 @@ class X2MDemoLine(models.Model):
name = fields.Char()
demo_id = fields.Many2one('x2m.demo')
+ demo_display_name = fields.Char(related="demo_id.display_name")
user_id = fields.Many2one('res.users')
+ user_display_name = fields.Char(related="user_id.matrix_display_name")
value = fields.Integer()
value_selection = fields.Selection(
[('val1', 'Value 1'), ('val2', 'Value 2')],
diff --git a/web_widget_x2many_2d_matrix_example/wizard/x2m_matrix.py b/web_widget_x2many_2d_matrix_example/wizard/x2m_matrix.py
index 8d4eacb0d..e68a0130b 100644
--- a/web_widget_x2many_2d_matrix_example/wizard/x2m_matrix.py
+++ b/web_widget_x2many_2d_matrix_example/wizard/x2m_matrix.py
@@ -19,6 +19,7 @@ class X2mMatrixDemoWiz(models.TransientModel):
'name': "{}'s task on {}".format(usr.name, rec.name),
'demo_id': rec.id,
'user_id': usr.id,
+ 'user_display_name': usr.matrix_display_name,
})
# if there isn't a demo line record for the user, create a new one
if not rec.line_ids.filtered(lambda x: x.user_id == usr) else
diff --git a/web_widget_x2many_2d_matrix_example/wizard/x2m_matrix.xml b/web_widget_x2many_2d_matrix_example/wizard/x2m_matrix.xml
index ddb92653c..26755e149 100644
--- a/web_widget_x2many_2d_matrix_example/wizard/x2m_matrix.xml
+++ b/web_widget_x2many_2d_matrix_example/wizard/x2m_matrix.xml
@@ -8,10 +8,12 @@
|