将列表字段显示为矩阵
odoo9-addon-web-widget-x2many-2d-matrix的Python项目详细描述
…图片::https://img.shields.io/badge/badge/license-agpl--3-blue.svg
:target:http://www.gnu.org/licenses/agpl-3.0-standalon.html
:alt:license:agpl-3
===========
这个模块允许对很多领域的二维矩阵进行二维矩阵运算,这个模块允许这个模块允许对很多领域的二维矩阵进行二维矩阵运算。显示具有3元组
(表中的$x_值,$y_值,$y值,$value)的3元组多字段
(表中的$x_值,$y_值,$value)的多字段
===========
===============================
,其中"value(n/n)"是可编辑的。
结果可能如下:
…图片::web_widget_x2many_2d_matrix/static/description/screenshot.png
:alt:screenshot
=====
使用此小部件时,请说::
<;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_axis="my_field2"field_value="my_field3"/>;
可以传递以下参数:
field x_axis
指示点的X值的字段
字段Y轴
指示点的Y值的字段
字段标签X轴
使用另一个字段显示在表头
字段标签Y轴
使用另一个字段显示在表头
X轴单击ble
它指示是否可以单击x轴导航到字段
(如果它是一个many2one字段)。默认情况下为true
y轴可单击
它指示y轴是否允许单击以导航到字段
(如果它是一个many2one字段)。默认情况下为true
字段值
将此字段显示为值
显示行总计
如果字段值是数字字段,则表示是否要计算行总计。默认情况下为true
显示列总计
如果字段值是数字字段,则表示是否要计算列总计。默认情况下为true
field att;name>;
根据绑定
具有html节点属性(disabled、class、style…)的字段值(称为传入选项的"<;name>;")的需要,声明以该字符串为前缀的尽可能多的选项。
图片::https://odoo community.org/website/image/ir.attachment/5784\u f2813bd/datas
:alt:try me on runbot
:target:https://runbot.odoo community.org/runbot/162/8.0
假设我们希望
在向导中使用此小部件,该向导允许用户为每个用户每个项目填写一个
任务的计划工时。在这种情况下,我们可以使用project.task作为
数据模型,并从向导中指向它。关键部分是我们在默认函数中填写字段:
class my wizard(models.transientmodel):
u name='my.wizard'
向导或其他位置
projects=self.env['project.project'].browse([1,2,3])
#如果项目没有任务用户,创建一个新的
如果不是p.task\u ids.filtered(lambda x:x.user\u id==u)否则,返回任务
(4,p.task\u ids.filtered(lambda x:x.user\u id==u)[0.id)
对于p in projects
对于u in users
]
task\u ids=fields.many2many('project.task',default=默认任务ID)
ol通过带有控制项的"禁用field att"选项,可以直观地编辑矩阵中的字段。
tesian产品,
而不是被迫预先填充所有可能的值。
*如果使用onchange传递值,则需要覆盖模型的方法
`onchange`以使小部件工作:
@api.multi
def onchange(self、values、field-name、field-onchange):
对于[字段列表]中的sub:
field\u onchange.setdefault("one2many\u field."+sub,u"")
返回super(model,self).onchange(values,field\u name,field\u onchange)
bug tracker
==
<;https://github.com/oca/web/issues>;`。如果出现问题,请
检查是否已报告您的问题。如果您首先发现了它,
通过提供详细且受欢迎的反馈帮助我们粉碎它。
credits
=
----
*holger brunn<;hbrunn@therp.nl>;
*pedro m.baeza<;pedro.baeza@tecnativa.com>;
----
图片::https://odoo community.org/logo.png
:alt:odoo community association
:target:https://odoo community.org
此模块由oca维护。
oca或odoo community association是一个非盈利组织,其
任务是支持odoo功能的协同开发并促进其广泛使用。
若要对此模块作出贡献,请访问https://odoo-community.org。
:target:http://www.gnu.org/licenses/agpl-3.0-standalon.html
:alt:license:agpl-3
===========
这个模块允许对很多领域的二维矩阵进行二维矩阵运算,这个模块允许这个模块允许对很多领域的二维矩阵进行二维矩阵运算。显示具有3元组
(表中的$x_值,$y_值,$y值,$value)的3元组多字段
(表中的$x_值,$y_值,$value)的多字段
===========
===============================
,其中"value(n/n)"是可编辑的。
结果可能如下:
…图片::web_widget_x2many_2d_matrix/static/description/screenshot.png
:alt:screenshot
=====
使用此小部件时,请说::
<;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_axis="my_field2"field_value="my_field3"/>;
可以传递以下参数:
field x_axis
指示点的X值的字段
字段Y轴
指示点的Y值的字段
字段标签X轴
使用另一个字段显示在表头
字段标签Y轴
使用另一个字段显示在表头
X轴单击ble
它指示是否可以单击x轴导航到字段
(如果它是一个many2one字段)。默认情况下为true
y轴可单击
它指示y轴是否允许单击以导航到字段
(如果它是一个many2one字段)。默认情况下为true
字段值
将此字段显示为值
显示行总计
如果字段值是数字字段,则表示是否要计算行总计。默认情况下为true
显示列总计
如果字段值是数字字段,则表示是否要计算列总计。默认情况下为true
field att;name>;
根据绑定
具有html节点属性(disabled、class、style…)的字段值(称为传入选项的"<;name>;")的需要,声明以该字符串为前缀的尽可能多的选项。
图片::https://odoo community.org/website/image/ir.attachment/5784\u f2813bd/datas
:alt:try me on runbot
:target:https://runbot.odoo community.org/runbot/162/8.0
假设我们希望
在向导中使用此小部件,该向导允许用户为每个用户每个项目填写一个
任务的计划工时。在这种情况下,我们可以使用project.task作为
数据模型,并从向导中指向它。关键部分是我们在默认函数中填写字段:
class my wizard(models.transientmodel):
u name='my.wizard'
projects=self.env['project.project'].browse([1,2,3])
#如果项目没有任务用户,创建一个新的
如果不是p.task\u ids.filtered(lambda x:x.user\u id==u)否则,返回任务
(4,p.task\u ids.filtered(lambda x:x.user\u id==u)[0.id)
对于p in projects
对于u in users
]
task\u ids=fields.many2many('project.task',default=默认任务ID)
ol通过带有控制项的"禁用field att"选项,可以直观地编辑矩阵中的字段。
tesian产品,
而不是被迫预先填充所有可能的值。
*如果使用onchange传递值,则需要覆盖模型的方法
`onchange`以使小部件工作:
@api.multi
def onchange(self、values、field-name、field-onchange):
对于[字段列表]中的sub:
field\u onchange.setdefault("one2many\u field."+sub,u"")
返回super(model,self).onchange(values,field\u name,field\u onchange)
bug tracker
==
检查是否已报告您的问题。如果您首先发现了它,
通过提供详细且受欢迎的反馈帮助我们粉碎它。
credits
=
----
*holger brunn<;hbrunn@therp.nl>;
*pedro m.baeza<;pedro.baeza@tecnativa.com>;
图片::https://odoo community.org/logo.png
:alt:odoo community association
:target:https://odoo community.org
此模块由oca维护。
oca或odoo community association是一个非盈利组织,其
任务是支持odoo功能的协同开发并促进其广泛使用。
若要对此模块作出贡献,请访问https://odoo-community.org。