优化了RNG校验以及oo_list_manager的index问题

This commit is contained in:
夜未央
2025-09-12 00:20:20 +08:00
parent 0af8acdcd8
commit c76652f07d
2 changed files with 46 additions and 20 deletions
+45 -19
View File
@@ -4,30 +4,48 @@
Handling of element overloading when inheriting from a basetemplate
-->
<rng:include href="odoo/addons/base/rng/common.rng"/>
<rng:define name="searchpanel">
<rng:element name="searchpanel">
<rng:ref name="overload"/>
<rng:optional><rng:attribute name="view_types"/></rng:optional>
<rng:optional><rng:attribute name="class"/></rng:optional>
<rng:optional>
<rng:attribute name="view_types"/>
</rng:optional>
<rng:optional>
<rng:attribute name="class"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="field" />
</rng:zeroOrMore>
</rng:element>
</rng:define>
<!-- 继承并扩展 filter 元素 -->
<rng:define name="filter" combine="choice">
<rng:optional>
<rng:attribute name="shownumber">
<rng:data type="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<!-- 头部搜索框内的快捷筛选,一个快捷筛选就是一行 -->
<rng:define name="quick_filter">
<rng:element name="quick_filter">
<!-- quick_filter筛选支持参数 -->
<!-- 自定义css -->
<rng:optional><rng:attribute name="class"/></rng:optional>
<rng:optional>
<rng:attribute name="class"/>
</rng:optional>
<!-- 当前快捷筛选行显示的标头 -->
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:optional>
<rng:attribute name="string"/>
</rng:optional>
<!-- 是否默认显示 -->
<rng:optional><rng:attribute name="invisible"/></rng:optional>
<rng:optional>
<rng:attribute name="invisible"/>
</rng:optional>
<!-- 扩展参数 -->
<rng:optional><rng:attribute name="options"/></rng:optional>
<rng:optional>
<rng:attribute name="options"/>
</rng:optional>
<!-- 各筛选之间的与或关系 -->
<rng:optional>
<rng:attribute name="and_or">
@@ -46,24 +64,30 @@
</rng:zeroOrMore>
</rng:element>
</rng:define>
<!-- 自选时间筛选 -->
<rng:define name="select_date_filter">
<rng:element name="select_date_filter">
<!-- 自定义css -->
<rng:optional><rng:attribute name="class"/></rng:optional>
<rng:optional>
<rng:attribute name="class"/>
</rng:optional>
<!-- 默认显示还在显示更多里的 -->
<rng:optional><rng:attribute name="invisible"/></rng:optional>
<rng:optional>
<rng:attribute name="invisible"/>
</rng:optional>
<!-- 允许的选择字段,不填写则所有时间可选 -->
<rng:optional><rng:attribute name="allow_date_fields" /></rng:optional>
<rng:optional>
<rng:attribute name="allow_date_fields" />
</rng:optional>
</rng:element>
</rng:define>
<!-- list视图的头部搜索框 -->
<rng:define name="header_search">
<rng:element name="header_search">
<!-- 自定义css -->
<rng:optional><rng:attribute name="class"/></rng:optional>
<rng:optional>
<rng:attribute name="class"/>
</rng:optional>
<!-- header_search筛选支持参数 -->
<rng:zeroOrMore>
<!-- 支持的筛选标签 -->
@@ -78,18 +102,21 @@
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="search">
<rng:element name="search">
<rng:ref name="overload"/>
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:optional>
<rng:attribute name="string"/>
</rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="field"/>
<rng:ref name="group"/>
<rng:ref name="separator"/>
<rng:ref name="filter"/>
<rng:element name="newline"><rng:empty/></rng:element>
<rng:element name="newline">
<rng:empty/>
</rng:element>
<rng:ref name="searchpanel"/>
<!-- 添加顶部搜索 -->
<rng:ref name="header_search"/>
@@ -97,10 +124,9 @@
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:start>
<rng:choice>
<rng:ref name="search" />
</rng:choice>
</rng:start>
</rng:grammar>
</rng:grammar>
@@ -112,7 +112,7 @@ patch(ListRenderer.prototype, {
// 冻结分组行
groupHeaders.forEach(tr => {
const cell = tr.children[i];
if (cell) setStyle(cell, left, 15); // 比 body 高,比 header 低
if (cell) setStyle(cell, left, 4); // 比 body 高,比 header 低
});
} else {