如何编辑在Odoo 10中的模块中添加自定义过滤器选项中显示的过滤器和字段

时间:2018-01-17 11:53:27

标签: odoo-10 odoo

我是odoo的新手,我需要删除点击在odoo 10中的fleet模块中添加自定义过滤器时出现的一些字段,以及如何添加自定义过滤器并删除现有过滤器?

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

将此过滤器添加到您的代码中。

例如:在销售订单行中添加过滤器。

<record id="inherit_so_line_filter_view" model="ir.ui.view">
    <field name="name">sale.order.list.available</field>
    <field name="model">sale.order.line</field>
    <field name="inherit_id" ref="sale.view_sales_order_line_filter"/>
    <field name="arch" type="xml">
        <search>
            <filter string="Pending" domain="[('remian_qty','&gt;',0)]" name = "qty_available"/>
            <filter string="Lost" domain="[('remian_qty','=',0)]" name = "qty_lost"/>
       </search>
    </field>
 </record>

例如:在销售订单中使用xpath添加过滤器。

<record id="view_sale_order_inherit_search" model="ir.ui.view">
  <field name="name">sale.order.search.filter</field>
  <field name="model">sale.order</field>
  <field name="inherit_id" ref="sale.sale_order_view_search_inherit_quotation"/>
  <field name="arch" type="xml">
    <xpath expr="//search" position="inside">
      <filter string="Total &lt; 1000" name="total_under_1000" domain="[('amount_total', '&lt;', 1000)]"/>
      <filter string="Total &gt;= 1000" name="total_above_1000" domain="[('amount_total', '&gt;=', 1000)]"/>
    </xpath>
  </field>
</record>

答案 1 :(得分:0)

您可以使用 field_get()更改字段属性“ 可选”,该属性在 search_menu.js web 模块中的strong>,以决定单击“添加自定义过滤器”时显示哪些字段。

export function registerUser(data){
const request = axios({
    method: "POST",
    url: `${REGISTER}${API_KEY}`,
    data: {
        email: data.email,
        password: data.password,
    },
    headers:{
        "Content-Type":"application/json"
    }
 })  
 .then(function (response) {
    // handle success
    console.log(response);
  })
 .catch(function (error) {
    // handle error
    console.log(error);
  })

search_menu.js 中的相关代码:

selectable_fields = ['field1',...]

@api.model
def fields_get(self, allfields=None, attributes=None):
    res = super(YourModel, self).fields_get(allfields, attributes=attributes) 
    not_selectable_fields = set(self._fields.keys()) - set(self.selectable_fields)
    for field in not_selectable_fields:
        res[field]['selectable'] = False
    return res

答案 2 :(得分:-1)

继承现有的过滤器,如下所示:

<record id="any_id_name" model="ir.ui.view">
        <field name="name">model.nameinsearchview</field>
        <field name="model">model.name</field>
        <field name="inherit_id" ref="external_id/>
        <field name="arch" type="xml">
            <filter name="that_field_name_in_exisiting_filter_view" position="replace">
            </filter>
        </field>
</record>

是的。现在这将取代现有代码。