待解决问题:
1 context 到底是一个什么概念?
2 if the list view is editable
, any field attribute from the form view is also valid and will be used when setting up the inline form view. 什么鬼,没看懂
tree视图的根元素是, tree元素可以有下列属性
默认情况下,选择列表视图的行将打开相应的表单视图。editable属性使列表视图本身可就地编辑。
有效值为top和bottom,使新记录分别出现在列表的顶部或底部。
当edit=false , editable 就无效了. 点击记录行会打开form视图.
这个很好用,设置multi_edit=“1”, 选中多行,然后点击某一行的字段进行修改,可以修改多行.
覆盖模型中使用_order定义的默认排序规则, 可使用desc来进行倒序。
<tree default_order="sequence,name desc">
...
tree>
允许根据相应记录的属性更改行文本的样式。
$name:
bf加粗, it斜体
bootstrap样式: danger,
info,
muted,
primary,
successor
warning
<tree default_order="sequence,name desc" decoration-danger="state=='3'">
...
tree>
,
edit,
delete,
import,
export_xlsx允许通过将相应属性设置为false来禁用视图中的相应操作
默认的分页数量,必须是整数
limit="100"
列表视图分组时,页面的默认分组数。它必须是一个整数
当列表视图被分组时,如果设置为true(默认为false),则自动打开第一层组。
expand="1" 或者 expand="true"
<button name="action_confirm" string="Confirm" type="object" icon="fa-check"/>
用于显示按钮的图标
按钮的类型,表明点击它会如何影响Odoo
object
调用列表模型上的一个方法。按钮的名称是方法名,使用当前行的记录id和当前上下文调用该方法。
当前上下文是个什么鬼?
action
加载并执行一个ir.actions,按钮的name是action的数据库id。上下文用列表的模型(如active_model)、当前行的记录(active_id)和当前加载在列表中的所有记录(active_ids,跟搜索条件相匹配,可能只是当前数据库记录的一个子集)。
fatux:上下文是个什么鬼?
<button name="%(estate.estate_property_type_act_window)d" type="action" string="房屋订单">button>
%()d 又是什么鬼? 里面引用的是在xml中定义的动作id
参考type
参考type, 妈的,type中就没提到 args, 搜索源代码也没搜到. 可能是过气的参数把…
基于记录值的动态属性。
属性到domain的映射,domain在当前行记录的上下文中计算,如果为True,则在单元格上设置相应的属性。
<button string="确认变化点" class="btn btn-primary" type="object" name="action_confirm"
attrs="{'invisible': [('can_deal', '=', False)]}"/>
invisible 和 attrs 的联合简写, 用逗号分隔的state列表, 需要模型又state字段,并且要在视图中显示.
<button name="action_close" states="open,expired,futur" type="object" string="Close Contract" groups="fleet.fleet_group_manager"/>
当state的值在列表中的时候显示,否则就不显示.
注意: states和attrs一起用可能会导致不可预期的结果. 因为二者会组合在一起进行逻辑运算
在执行按钮的Odoo调用时合并到视图的上下文中.
搜索源代码没找到button中调用context的例子,不过
在其他的xml中发现了context
action:
<record id="act_menu_create" model="ir.actions.act_window">
<field name="name">Create Menufield>
<field name="res_model">wizard.ir.model.menu.createfield>
<field name="view_mode">formfield>
<field name="target">newfield>
<field name="context">{'model_id': active_id}field>
record>
filter:
<group expand="0" string="Group By">
<filter string="User" name="user" domain="[]" context="{'group_by': 'user_id'}"/>
<filter string="Execution" name="execution" domain="[]" context="{'group_by': 'nextcall'}" />
<filter string="Model" name="groupby_model_id" domain="[]" context="{'group_by': 'model_id'}"/>
group>
context 到底是一个什么概念?
定义一个列,其中每个记录应显示相应的字段。可以使用以下属性:
要在当前模型中显示的字段的名称。给定的名称在每个视图中只能使用一次
字段列的标题(默认情况下,使用模型字段的字符串)
获取并存储字段,但不显示表中的列。 有些字段需要引用其中的数据.
列出能够看到该字段的组
字段显示小部件,可以替换默认的部件. 比如
progressbar: 将百分比显示为进度条。
handle: 对于排序记录的序列(或整数)字段,而不是显示字段的值,只是显示拖放图标来重新排序记录。 可以移动行,会改变数据库中的值
在列的底部显示相应的聚合。聚合仅在当前显示的记录上计算。聚合操作必须匹配相应字段的group_operator
group_operator 是什么鬼?
<field name="living_area" sum="总面积"/>
<field name="selling_price"/>
<field name="date_availability"/>
<field name="property_type_id"/>
<field name="total_area" avg="平均面积" />
当鼠标移动到数字上时,会显示汉字描述
基于记录值的动态属性。只影响当前字段,因此,例如invisible将隐藏字段
editable
)当列表中没有数据时,可以通过设置此属性强制设置列的宽度。该值可以是绝对宽度(例如“100px”),也可以是相对权重(例如“3”,这意味着这一列将比其他列大3倍)。注意,当列表中有记录时,我们让浏览器根据它们的内容自动调整列的宽度,因此忽略此属性。
fatux: 貌似没什么大用
允许根据相应记录的属性更改单元格文本的样式。
同tree根元素
如果设置为" 1 ",列标题将保持为空。此外,列也不能排序。
fatux: 这个选项有毛用呢?
使列可选。如果设置为“hide”,则默认隐藏该列。如果设置为“show”,默认情况下该列是可见的。用户可见性选项存储在浏览器本地存储中。
<field name="price" attrs="{'column_invisible':[('parent.postcode','=','111')]}"/>
父表的form视图中,One2many/Many2many字段对应的内部tree视图,可以根据父表的值来隐藏子表中的某一列
分组的时候显示在分组字段后面的按钮
分组字段名称
案例:
<groupby name="partner_id">
<field name="name"/>
<button type="edit" name="edit" string="Edit"/>
<button type="object" name="my_method" string="Button1"
attrs="{'invisible': [('name', '=', 'Georges')]}"/>
groupby>
用在one2Many字段的内联tree视图中,代替最下方的"增加明细"按钮, 可以设置context,比如给某一个字段设置默认值
control没有任何属性,只有一个子元素create
<field name="offer_ids" attrs="{'readonly':[('state','>=','3')]}">
<tree>
<control>
<create name="add_product_control" string="Add a product"/>
<create name="add_section_control" string="报价100"
context="{'default_price': 100}"/>
<create name="add_note_control" string="Add a note"
context="{'default_display_type': 'line_note'}"/>
control>
<field name="partner_id"/>
<field name="price" attrs="{'column_invisible':[('parent.postcode','=','111')]}"/>
<field name="validity"/>
<field name="date_deadline"/>
<button name="action_confirm" string="Confirm" type="object" icon="fa-check"/>
<button name="action_cancel" string="Cancel" type="object" icon="fa-times"/>
<field name="status"/>
tree>
field>
string 现在的按钮名称
context 上下文,一般用来设置默认值