未显示非默认视图筛选器
Non-default view filter isn't displaying
有一个带有时间表模块(自制)的odoo系统。我需要在 xml 文件的 views 部分添加一些视图过滤器。我已将其设置为默认值并且有效:
<!-- tabel search view 1 -->
<record id="view_tabel_search1" model="ir.ui.view">
<field name="name">tabel.tabel.search1</field>
<field name="model">tabel.tabel</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Checker">
<filter
string="Last and following months"
name="filter1"
domain="[('write_date', '>=' ,(context_today()-relativedelta(months=2)+relativedelta(days=20)).strftime('%d-%m-%Y') )]"
help = "Press ALL to get all timesheets"/>
<field name="time_start_t" select="True"/>
<field name="id_ank" select="True"/>
</search>
</field>
</record>
但是没有显示下一个(完全相同):
<!--tabel search view 2 -->
<record id="view_tabel_search2" model="ir.ui.view">
<field name="name">tabel.tabel.search2</field>
<field name="model">tabel.tabel</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Checker">
<filter
string="Current and following months"
name="filter2"
domain="[('time_end_t', '>=' ,(context_today()).strftime('%d-%m-%Y'))]"
help = "Press all to get all timesheets"/>
<field name="time_start_t" select="True"/>
<field name="id_ank" select="True"/>
</search>
</field>
</record>
因此,第一个显示并有效,第二个无效。它们之间的唯一区别(过滤规则除外)是 filter1 是默认值,如 actions 部分所述:
<record model="ir.actions.act_window" id="tabel_list_draft_action">
<field name="name">Tableman's sign</field>
<field name="res_model">tabel.tabel</field>
<field name="view_type">form</field>
<field name="domain">[('state','=', 'draft')]</field>
<field name="view_mode">tree,form,graph</field>
<field name="search_view_id" ref="view_tabel_search2"/>
<field name="context">{'search_default_filter1':1,'state':'draft'}</field>
</record>
可能,我还必须描述非默认过滤器,但我从未见过任何示例来说明如何做到这一点。所以非常感谢任何建议。
在 Odoo v8 中自定义搜索视图
Odoo 中的搜索视图是什么?
每当您在树视图、看板视图或其他可以搜索的视图中时,Odoo 都会使用 XML 搜索视图定义来确定 Odoo 中的搜索应该如何针对该特定模型发挥作用。例如,在销售订单树视图中,有一些特定的选项可以帮助您在 Odoo 中找到销售订单。
在这里我们可以看到您可以选择如何按客户、销售人员、销售团队、合同或产品进行搜索。您还可以看到,由于我们扩展了搜索选项,我们有过滤器将销售订单限制为仅我的销售订单、报价单、销售、发票、完成和新邮件。可用的分组依据选项也在搜索视图中定义。
我必须知道如何开发模块来自定义搜索视图吗?
这完全取决于您希望对搜索视图执行的操作。幸运的是,添加您可能希望搜索的额外字段或删除不适合您特定业务需求的选项非常容易。但是,如果您希望创建更复杂的专门搜索,您可能需要编写自定义 python 代码来满足您的对象。然而,大多数情况下,您可以通过修改搜索视图来完成大部分任务,而无需创建模块。
Odoo 中搜索视图的基本格式是什么?
搜索视图存储在 XML 中,对于具有 XML 基本知识的人来说非常易读。以下是基本搜索视图:
<?xml version="1.0"?>
<search string="Search Sales Order">
<field name="name" string="Sales Order" filter_domain="['|',('name','ilike',self),('client_order_ref','ilike',self)]"/>
<field name="partner_id" operator="child_of"/>
<field name="user_id"/>
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
<field name="project_id"/>
<field name="product_id"/>
<filter string="My" domain="[('user_id','=',uid)]" name="my_sale_orders_filter"/>
<separator/>
<filter string="Quotations" name="draft" domain="[('state','in',('draft','sent'))]" help="Sales Order that haven't yet been confirmed"/>
<filter string="Sales" name="sales" domain="[('state','in',('manual','progress'))]"/>
<filter string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/>
<filter string="Done" domain="[('state','=','done')]" help="Sales Order done"/>
<separator/>
<filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
<group expand="0" string="Group By">
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Customer" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Order Month" domain="[]" context="{'group_by':'date_order'}"/>
</group>
</search>
每个元素告诉 Odoo 引擎搜索中可用的选项。
为什么我要修改 Odoo 中的搜索视图?
随着系统中记录数量的增加,您的用户将花费越来越多的时间来查找完成给定任务所需的记录。当您的系统中只有几十个销售订单时,定位数据不是问题。但随着数据的增长,具有使用户轻松查找记录的搜索功能变得更加重要。也许与 Odoo 中的任何其他自定义选项相比,自定义搜索视图的能力可能最有可能提高用户满意度和使用系统的安全时间。
有一个带有时间表模块(自制)的odoo系统。我需要在 xml 文件的 views 部分添加一些视图过滤器。我已将其设置为默认值并且有效:
<!-- tabel search view 1 -->
<record id="view_tabel_search1" model="ir.ui.view">
<field name="name">tabel.tabel.search1</field>
<field name="model">tabel.tabel</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Checker">
<filter
string="Last and following months"
name="filter1"
domain="[('write_date', '>=' ,(context_today()-relativedelta(months=2)+relativedelta(days=20)).strftime('%d-%m-%Y') )]"
help = "Press ALL to get all timesheets"/>
<field name="time_start_t" select="True"/>
<field name="id_ank" select="True"/>
</search>
</field>
</record>
但是没有显示下一个(完全相同):
<!--tabel search view 2 -->
<record id="view_tabel_search2" model="ir.ui.view">
<field name="name">tabel.tabel.search2</field>
<field name="model">tabel.tabel</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Checker">
<filter
string="Current and following months"
name="filter2"
domain="[('time_end_t', '>=' ,(context_today()).strftime('%d-%m-%Y'))]"
help = "Press all to get all timesheets"/>
<field name="time_start_t" select="True"/>
<field name="id_ank" select="True"/>
</search>
</field>
</record>
因此,第一个显示并有效,第二个无效。它们之间的唯一区别(过滤规则除外)是 filter1 是默认值,如 actions 部分所述:
<record model="ir.actions.act_window" id="tabel_list_draft_action">
<field name="name">Tableman's sign</field>
<field name="res_model">tabel.tabel</field>
<field name="view_type">form</field>
<field name="domain">[('state','=', 'draft')]</field>
<field name="view_mode">tree,form,graph</field>
<field name="search_view_id" ref="view_tabel_search2"/>
<field name="context">{'search_default_filter1':1,'state':'draft'}</field>
</record>
可能,我还必须描述非默认过滤器,但我从未见过任何示例来说明如何做到这一点。所以非常感谢任何建议。
在 Odoo v8 中自定义搜索视图
Odoo 中的搜索视图是什么?
每当您在树视图、看板视图或其他可以搜索的视图中时,Odoo 都会使用 XML 搜索视图定义来确定 Odoo 中的搜索应该如何针对该特定模型发挥作用。例如,在销售订单树视图中,有一些特定的选项可以帮助您在 Odoo 中找到销售订单。
在这里我们可以看到您可以选择如何按客户、销售人员、销售团队、合同或产品进行搜索。您还可以看到,由于我们扩展了搜索选项,我们有过滤器将销售订单限制为仅我的销售订单、报价单、销售、发票、完成和新邮件。可用的分组依据选项也在搜索视图中定义。
我必须知道如何开发模块来自定义搜索视图吗?
这完全取决于您希望对搜索视图执行的操作。幸运的是,添加您可能希望搜索的额外字段或删除不适合您特定业务需求的选项非常容易。但是,如果您希望创建更复杂的专门搜索,您可能需要编写自定义 python 代码来满足您的对象。然而,大多数情况下,您可以通过修改搜索视图来完成大部分任务,而无需创建模块。
Odoo 中搜索视图的基本格式是什么?
搜索视图存储在 XML 中,对于具有 XML 基本知识的人来说非常易读。以下是基本搜索视图:
<?xml version="1.0"?>
<search string="Search Sales Order">
<field name="name" string="Sales Order" filter_domain="['|',('name','ilike',self),('client_order_ref','ilike',self)]"/>
<field name="partner_id" operator="child_of"/>
<field name="user_id"/>
<field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
<field name="project_id"/>
<field name="product_id"/>
<filter string="My" domain="[('user_id','=',uid)]" name="my_sale_orders_filter"/>
<separator/>
<filter string="Quotations" name="draft" domain="[('state','in',('draft','sent'))]" help="Sales Order that haven't yet been confirmed"/>
<filter string="Sales" name="sales" domain="[('state','in',('manual','progress'))]"/>
<filter string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/>
<filter string="Done" domain="[('state','=','done')]" help="Sales Order done"/>
<separator/>
<filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
<group expand="0" string="Group By">
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Customer" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Order Month" domain="[]" context="{'group_by':'date_order'}"/>
</group>
</search>
每个元素告诉 Odoo 引擎搜索中可用的选项。
为什么我要修改 Odoo 中的搜索视图?
随着系统中记录数量的增加,您的用户将花费越来越多的时间来查找完成给定任务所需的记录。当您的系统中只有几十个销售订单时,定位数据不是问题。但随着数据的增长,具有使用户轻松查找记录的搜索功能变得更加重要。也许与 Odoo 中的任何其他自定义选项相比,自定义搜索视图的能力可能最有可能提高用户满意度和使用系统的安全时间。