[ADD] web_widget_x2many_2d_matrix_example

This commit is contained in:
Simone Orsi
2018-02-20 12:46:16 +01:00
parent 69cc921ab3
commit 0628b00692
11 changed files with 223 additions and 0 deletions

View File

@@ -0,0 +1 @@
from . import demo_wizard

View File

@@ -0,0 +1,27 @@
from odoo import fields, models
class DemoWizard(models.TransientModel):
_name = 'x2m.matrix.demo.wiz'
line_ids = fields.Many2many(
'x2m.demo.line', default=lambda self: self._default_line_ids())
def _default_line_ids(self):
recs = self.env['x2m.demo'].search([])
# same with users
users = self.env['x2m.demo.line'].search([]).mapped('user_id')
return [
(0, 0, {
'name': "{}'s task on {}".format(usr.name, rec.name),
'demo_id': rec.id,
'user_id': usr.id,
'value': 0,
})
# if the project doesn't have a task for the user, create a new one
if not rec.line_ids.filtered(lambda x: x.user_id == usr) else
# otherwise, return the task
(4, rec.line_ids.filtered(lambda x: x.user_id == usr)[0].id)
for rec in recs
for usr in users
]

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="x2many_2d_matrix_demo" model="ir.ui.view">
<field name="name">x2m.matrix.demo.wiz</field>
<field name="model">x2m.matrix.demo.wiz</field>
<field name="type">form</field>
<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">
<tree>
<field name="demo_id"/>
<field name="user_id"/>
<field name="value"/>
</tree>
</field>
</form>
</field>
</record>
</odoo>