将列表字段显示为矩阵

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


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

这个模块允许用3元组显示x2many字段 表中的($x\u value,$y\u value,$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。如果字段的名称不同,请将正确的名称作为 属性:

^{pr2}$

可以传递以下参数:

字段x轴
表示点的x值的字段
字段y轴
表示点的y值的字段
字段标签x轴
使用另一个字段显示在表格标题中
字段标签y轴
使用另一个字段显示在表格标题中
字段值
将此字段显示为值
显示“行总计”
如果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]网络小部件多个二维矩阵 (#1101

Bug Tracker

bug在GitHub Issues上跟踪。 如果出现问题,请检查是否已报告您的问题。 如果您首先发现它,请帮助我们粉碎它提供详细的和受欢迎的 feedback。在

不要直接联系投稿人关于技术问题的支持或帮助。在

Credits

Authors

  • Therp公司
  • Tecnativa公司
  • 露营地
  • Brainbean应用程序

Contributors

Maintainers

本模块由OCA维护。在

Odoo Community Association

OCA,或奥多社区协会,是一个非营利性组织 其任务是支持Odoo特性和 促进其广泛使用。在

这个模块是GitHub上OCA/web项目的一部分。在

欢迎您投稿。{a45}请学习如何访问}。在

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

推荐PyPI第三方库


热门话题
java如何通过标记名检索多个标记中的元素以进行selenium自动化测试   java iText如何查找最后一行被拆分到下一页   java如何在hudson中的特定jdk上运行Findbugs和PMD?   如何确保java程序与java Environment 6兼容?   对形状进行分组,这样我就可以通过鼠标点击和java处理循环浏览它们   使用生成器映射对象时,java定义无效   maven Java:Struts2和IntelliJ供初学者使用   java子类不继承父类字段   java Android Grid View在Android版本kitkat上崩溃   java Hibernate从缓存返回错误的列表,即使预期的列表与缓存的列表不同   java SendGrid:模板和替换标记   用于普通生产者| Kafka流的java自定义分区器   安卓理解Java内部类中的作用域   无法从Android Studio中的非静态方法调用java非静态方法   比较两个XML响应的JavaXMLUnit   java使用keytool列出密钥   不使用Java客户端库将视频上传到YouTube数据API v3   java My While循环即使在满足条件时也不会结束   自动在外部存储字符串数据,以便以后在Java中使用