将列表字段以矩阵形式显示
项目描述
2D矩阵用于x2many字段
此模块允许在表中显示x2many字段,以3元组($x_value, $y_value, $value)的形式
$x_value1 |
$x_value2 |
|
---|---|---|
$y_value1 |
$value(1/1) |
$value(2/1) |
$y_value2 |
$value(1/2) |
$value(2/2) |
其中 value(n/n) 可编辑。
一个示例用例可以是:选择一些项目和员工,以便经理可以轻松为每个员工的一个任务填写计划工时。结果可能看起来像这样
这个的好处是,您可以在这个小部件中有任意数量的列,而尝试在标准x2many列表中实现这一点则需要一些相当丑陋的技巧。
使用方法
通过以下方式使用此小部件
<field name="my_field" widget="x2many_2d_matrix" />
这假设my_field引用一个具有字段 x、y 和 value 的模型。如果您的字段命名不同,请作为属性传递正确的名称
<field name="my_field" widget="x2many_2d_matrix" field_x_axis="my_field1" field_y_axis="my_field2" field_value="my_field3" />
您可以通过以下参数传递
- field_x_axis
指示点x值的字段
- field_y_axis
指示点y值的字段
- field_label_x_axis
使用另一个字段在表格标题中显示
- field_label_y_axis
使用另一个字段在表格标题中显示
- field_value
将此字段显示为值
- show_row_totals
如果field_value是数值字段,则计算行总计
- show_column_totals
如果field_value是数值字段,则计算列总计
- field_att_<name>
声明与HTML节点属性(disabled、class、style等)绑定字段值的选项,该属性以字符串作为前缀,称为选项中传递的 <name>。
示例
您需要一个已经填充了值的数结构。假设我们想要在一个向导中使用此小部件,该向导允许用户为每个项目每个用户填写一项任务的计划时间。在这种情况下,我们可以使用 project.task 作为我们的数据模型,并从我们的向导中指向它。关键部分是在默认函数中填写字段。
class MyWizard(models.TransientModel): _name = 'my.wizard' def _default_task_ids(self): # your list of project should come from the context, some selection # in a previous wizard or wherever else projects = self.env['project.project'].browse([1, 2, 3]) # same with users users = self.env['res.users'].browse([1, 2, 3]) return [ (0, 0, {'project_id': p.id, 'user_id': u.id, 'planned_hours': 0}) # if the project doesn't have a task for the user, create a new one if not p.task_ids.filtered(lambda x: x.user_id == u) else # otherwise, return the task (4, p.task_ids.filtered(lambda x: x.user_id == u)[0].id) for p in projects for u in users ] task_ids = fields.Many2many('project.task', default=_default_task_ids)
现在在我们的向导中,我们可以使用
<field name="task_ids" widget="x2many_2d_matrix" field_x_axis="project_id" field_y_axis="user_id" field_value="planned_hours" />
注意矩阵中必须存在所有值,因此如果不存在,您需要预先创建它们,但您可以通过 field_att_disabled 选项和一个控制字段来控制矩阵中字段的编辑性。
已知问题/路线图
尝试实例化适当的字段小部件并让它渲染输入将很有价值
错误跟踪器
错误在 GitHub Issues 上跟踪。如果遇到问题,请检查是否已经报告了您的问题。如果您是第一个发现它的人,请通过提供详细和受欢迎的反馈来帮助我们解决它。
致谢
贡献者
Holger Brunn <hbrunn@therp.nl>
Pedro M. Baeza <pedro.baeza@tecnativa.com>
维护者
此模块由OCA维护。
OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并促进其广泛使用。
要为此模块做出贡献,请访问 https://odoo-community.org。
项目详情
哈希 为 odoo8_addon_web_widget_x2many_2d_matrix-8.0.1.1.0-py2-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4adba0d5bff380e2aec4bf2d5f7157d96d257f07ac1770045d5bc3014fdbe9c |
|
MD5 | c1dc40b892c7a64c58bd2ae771e9e689 |
|
BLAKE2b-256 | aa7d8f45607f2636a15ff36a2f097efbeacfbced1413139409cdfebb0c4ceead |