Merge PR #2164 into 12.0

Signed-off-by legalsylvain
pull/2324/head
OCA-git-bot 2022-09-20 11:16:29 +00:00
commit eaff8ecb95
7 changed files with 39 additions and 6 deletions

View File

@ -220,7 +220,7 @@ odoo.define('web_widget_x2many_2d_matrix.X2Many2dMatrixRenderer', function (requ
*/
_renderLabelCell: function (record) {
var $td = $('<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;

View File

@ -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,

View File

@ -1,2 +1,3 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import x2m_demo
from . import res_users

View File

@ -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)

View File

@ -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')],

View File

@ -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

View File

@ -8,10 +8,12 @@
<field name="arch" type="xml">
<form>
<field name="line_ids" widget="x2many_2d_matrix"
field_x_axis="demo_id" field_y_axis="user_id" field_value="value">
field_x_axis="demo_id" field_y_axis="user_id" field_value="value" field_label_x_axis="demo_display_name" field_label_y_axis="user_display_name">
<tree>
<field name="demo_id"/>
<field name="demo_display_name"/>
<field name="user_id"/>
<field name="user_display_name"/>
<field name="value"/>
</tree>
</field>
@ -26,10 +28,12 @@
<field name="arch" type="xml">
<form>
<field name="line_ids" widget="x2many_2d_matrix"
field_x_axis="demo_id" field_y_axis="user_id" field_value="value_selection">
field_x_axis="demo_id" field_y_axis="user_id" field_value="value_selection" field_label_x_axis="demo_display_name" field_label_y_axis="user_display_name">
<tree>
<field name="demo_id"/>
<field name="demo_display_name"/>
<field name="user_id"/>
<field name="user_display_name"/>
<field name="value_selection"/>
</tree>
</field>
@ -44,10 +48,12 @@
<field name="arch" type="xml">
<form>
<field name="line_ids" widget="x2many_2d_matrix"
field_x_axis="demo_id" field_y_axis="user_id" field_value="value_many2one">
field_x_axis="demo_id" field_y_axis="user_id" field_value="value_many2one" field_label_x_axis="demo_display_name" field_label_y_axis="user_display_name">
<tree>
<field name="demo_id"/>
<field name="demo_display_name"/>
<field name="user_id"/>
<field name="user_display_name"/>
<field name="value_many2one" domain="[('users', '=', user_id)]"/>
</tree>
</field>