将列表字段显示为矩阵

odoo12-addon-web-widget-x2many-2d-matrix的Python项目详细描述


BetaLicense: AGPL-3OCA/webTranslate me on WeblateTry me on Runbot

此模块允许显示具有3元组的x2many字段 表中的($x_值,$y_值,$value)

$x_value1$x_value2
$y_value1$value(1/1)$value(2/1)
$y_value2$value(1/2)$value(2/2)

其中值(n/n)可编辑。

一个示例用例是:选择一些项目和一些员工,以便 经理可以很容易地为每位员工填写一项任务的计划工时。这个 结果可能如下:

Screenshot

它的优点是你有任意数量的列 widget,试图在标准的x2many列表中得到这个包含一些相当丑陋的 黑客。

目录

Usage

使用此小部件时,请说:

<field name="my_field" widget="x2many_2d_matrix" />

这假设my_字段指的是一个具有字段xy。如果字段的名称不同,请将正确的名称作为 属性:

<fieldname="my_field"widget="x2many_2d_matrix"field_x_axis="my_field1"field_y_axis="my_field2"field_value="my_field3"><tree><fieldname="my_field"/><fieldname="my_field1"/><fieldname="my_field2"/><fieldname="my_field3"/></tree></field>

您可以传递以下参数:

字段xx轴
表示点的x值的字段
字段yyx/< dt>
表示点的y值的字段
D.> FieldLabelxx轴< /dt >
使用另一个字段显示在表头中
dt>场标记轴< < /d>
使用另一个字段显示在表头中
字段值
将此字段显示为值
显示行总数
如果field_value是一个数字字段,则表示是否要计算 行总计。默认为true
显示列总数
如果field_value是一个数字字段,则表示是否要计算 列总计。默认为true

Example

您需要一个已经填充了值的数据结构。假设我们想 在向导中使用此小部件,该向导允许用户为一个 每个用户每个项目的任务。在这种情况下,我们可以使用project.task作为 数据模型并从向导指向它。关键是我们要 默认函数中的字段:

fromodooimportfields,modelsclassMyWizard(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 elseprojects=self.env['project.project'].browse([1,2,3])# same with usersusers=self.env['res.users'].browse([1,2,3])return[(0,0,{'name':'Sample task name','project_id':p.id,'user_id':u.id,'planned_hours':0,'message_needaction':False,'date_deadline':fields.Date.today(),})# if the project doesn't have a task for the user,# create a new oneifnotp.task_ids.filtered(lambdax:x.user_id==u)else# otherwise, return the task(4,p.task_ids.filtered(lambdax:x.user_id==u)[0].id)forpinprojectsforuinusers]task_ids=fields.Many2many('project.task',default=_default_task_ids)

现在在向导中,我们可以使用:

<fieldname="task_ids"widget="x2many_2d_matrix"field_x_axis="project_id"field_y_axis="user_id"field_value="planned_hours"><tree><fieldname="task_ids"/><fieldname="project_id"/><fieldname="user_id"/><fieldname="planned_hours"/></tree></field>

Known issues / Roadmap

  • 通过field_extra_attrsparam在每个字段单元格上支持额外属性。 例如,我们可以将单元格设置为不可编辑、必需或只读。 readonly案例也将提供 点击M2O打开相关记录。
  • 支持限制矩阵中的总记录数。参考号:https://github.com/OCA/web/issues/901
  • 支持通过键盘箭头遍历单元格。
  • 通过在键盘中按Shift+TAB从后面输入小部件 将进入第一个单元格,直到https://github.com/odoo/odoo/pull/26490 合并。
  • 在每个单元格中支持额外的不可见字段。

Changelog

12.0.1.0.1 (2018-12-07)

  • [修复]单元格无法呈现属性。 (#1126

12.0.1.0.0 (2018-11-20)

  • [12.0][mig]web_widget_x2many_2d_矩阵 (#1101

Bug Tracker

漏洞在GitHub Issues上跟踪。 如果出现问题,请检查是否已报告您的问题。 如果你先发现了它,请提供详细的 feedback

不要就技术问题直接与贡献者联系。

Credits

Authors

  • Therp公司
  • 技术
  • 露营车
  • BrainBean应用程序

Contributors

Maintainers

此模块由OCA维护。

Odoo Community Association

oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。

此模块是github上OCA/web项目的一部分。

欢迎您的贡献。要了解如何访问https://odoo-community.org/page/Contribute

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Vert。x垂直通道和服务之间的差异   java第二个活动从第一个活动调用后不调用   java如何在运行时从文件夹加载jar文件&在JBoss EAP 6.0.1中实例化类   Windows上带Java的GTK   java SocketException与改进   java计算通过if语句的学生人数我应该在if语句中输入什么?   java显示收到的推送通知   java纹理三角形,仅渲染一种颜色   读取布尔值时发生java输入不匹配异常   在Maven中安装插件时发生java错误   java Mockito InvalidUseofMatcherException   java类型的安卓 Apache。无法将lang.string转换为JSON对象   车牌图像的javaopencv分割   java如何在没有ModelAndView对象的情况下将数据绑定到视图   java确定两个顶点是否连接jGraphX