mirror of https://github.com/OCA/web.git
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
from odoo import fields, models
|
|
|
|
|
|
class X2MDemo(models.Model):
|
|
_name = "x2m.demo"
|
|
_description = "X2Many Demo"
|
|
|
|
name = fields.Char()
|
|
line_ids = fields.One2many("x2m.demo.line", "demo_id")
|
|
|
|
def _open_x2m_matrix(self, view_xmlid):
|
|
wiz = self.env["x2m.matrix.demo.wiz"].create({})
|
|
view_id = self.env.ref(
|
|
"web_widget_x2many_2d_matrix_example.%s" % view_xmlid,
|
|
).id
|
|
return {
|
|
"name": "Try x2many 2D matrix widget",
|
|
"type": "ir.actions.act_window",
|
|
"view_type": "form",
|
|
"view_mode": "form",
|
|
"res_model": "x2m.matrix.demo.wiz",
|
|
"target": "new",
|
|
"res_id": wiz.id,
|
|
"view_id": view_id,
|
|
"context": self.env.context,
|
|
}
|
|
|
|
def open_x2m_matrix(self):
|
|
return self._open_x2m_matrix("x2many_2d_matrix_demo")
|
|
|
|
def open_x2m_matrix_selection(self):
|
|
return self._open_x2m_matrix("x2many_2d_matrix_demo_selection")
|
|
|
|
def open_x2m_matrix_many2one(self):
|
|
return self._open_x2m_matrix("x2many_2d_matrix_demo_many2one")
|
|
|
|
|
|
class X2MDemoLine(models.Model):
|
|
_name = "x2m.demo.line"
|
|
_description = "X2Many Demo Line"
|
|
|
|
name = fields.Char()
|
|
demo_id = fields.Many2one("x2m.demo")
|
|
user_id = fields.Many2one("res.users")
|
|
value = fields.Integer()
|
|
value_selection = fields.Selection([("val1", "Value 1"), ("val2", "Value 2")],)
|
|
value_many2one = fields.Many2one("res.groups")
|