mirror of
https://github.com/OCA/web.git
synced 2025-02-22 13:21:25 +02:00
[ADD] extend the demo module to showcase more possibilities
This commit is contained in:
@@ -10,19 +10,19 @@ class X2mMatrixDemoWiz(models.TransientModel):
|
||||
'x2m.demo.line', default=lambda self: self._default_line_ids())
|
||||
|
||||
def _default_line_ids(self):
|
||||
"""take care that the widget gets records passed for every combination
|
||||
of x2m.demo and res.users involved"""
|
||||
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 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
|
||||
# otherwise, return the task
|
||||
# otherwise, return the line
|
||||
(4, rec.line_ids.filtered(lambda x: x.user_id == usr)[0].id)
|
||||
for rec in recs
|
||||
for usr in users
|
||||
|
||||
@@ -19,4 +19,40 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="x2many_2d_matrix_demo_selection" 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_selection">
|
||||
<tree>
|
||||
<field name="demo_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="value_selection"/>
|
||||
</tree>
|
||||
</field>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="x2many_2d_matrix_demo_many2one" 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_many2one">
|
||||
<tree>
|
||||
<field name="demo_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="value_many2one" domain="[('users', '=', user_id)]"/>
|
||||
</tree>
|
||||
</field>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user