odoo12 search搜索
<record model="ir.ui.view" id="my_apply_search">
<field name="name">我的申请搜索</field>
<field name="model">hr.leave.apply</field>
<field name="arch" type="xml">
<search string="my_apply_search">
<separator orientation="申请类型"/>
<filter string="请假申请" name="filter_apply_type_leave" domain="[('apply_type', '=', 'leave')]" />
<separator orientation="审批状态"/>
<filter string="待审核" name="filter_state_wait_approval" domain="[('state', '=', 'wait_approval')]" />
<filter string="审批中" name="filter_state_approval" domain="[('state', '=', 'approval')]" />
<filter string="已审批" name="filter_state_finish_approval" domain="[('state', '=', 'finish_approval')]" />
<filter string="未通过" name="filter_state_reject" domain="[('state', '=', 'reject')]" />
<filter string="已取消" name="filter_state_cancel" domain="[('state', '=', 'cancel')]" />
<separator/>
<filter string="当月申请" name="filter_apply_time" domain="[('create_date', '>=', (context_today() + relativedelta(day=1)).strftime('%Y-%m-%d')),
('create_date', '<=', (context_today() + relativedelta(months=1, day=1, days=-1)).strftime('%Y-%m-%d'))]" />
<filter string="今日至往后1周" name="filter_apply_time" domain="[('apply_time', '>=', (context_today() + relativedelta(day=1)).strftime('%Y-%m-%d')),
('apply_time', '<=', (context_today() + relativedelta(weeks=1)).strftime('%Y-%m-%d'))]" />
<field name="apply_employee" filter_domain="[('apply_employee', 'ilike', self)]"/>
<field name="mini_type" />
<field name="apply_date" />
<group expand="0" string="Group By">
<filter string="申请日期" name="filter_groupby_apply_date" domain="[('state', 'not in', ['reject','cancel'])]" context="{'group_by':'apply_date'}"/>
</group>
</search>
</field>
</record>
- <field> 标签定义搜索条件 可添加域。
- <filter>标签定义筛选条件,通过域控制输出记录集。
- <separator>标签分隔,部分情况不分隔会导致筛选条件不生效。
<filter string="本年度" name="filter_current_year" domain="[('year', '=', datetime.datetime.now().year)]" />
在filter中 domain可执行一些python代码
例如datetime
相同字段的筛选条件选择后默认为或的关系
多个默认筛选条件需要使用<separator>标签分隔
- 分组:
<group expand="0" string="Group By">
<filter string="申请日期" name="filter_groupby_apply_date" domain="[('state', 'not in', ['reject','cancel'])]" context="{'group_by':'apply_date'}"/>
</group>
<!-- 在group > filter标签中的context设置group_by,其值为分组的字段 -->
--------------------- 若有错误,感谢指正 ----------------------------