我目前正在构建自定义模块,并且扩展了度量单位类(product.uom)。我希望根据我的新变量之一的特定值从列表/树视图中删除一些uom条目。

我不确定如何修改此视图。我似乎在读我需要指定一个域,例如domain = [(“ myvariable”,“ =”,True)],但我不确定如何应用此域。我尝试继承树视图并添加域,但这不起作用。

任何帮助将不胜感激。

解:

<record model="ir.actions.act_window" id="uom_list_action">
    <field name="name">Units Of Measurement</field>
    <field name="res_model">product.uom</field>
    <field name="domain">[("myvariable","!=",True)]</field>
    <field name="view_mode">tree,form</field>
</record>

<record model="ir.ui.menu" id="product.menu_product_uom_form_action">
    <field name="action" ref="uom_list_action"/>
</record>

<record model="ir.ui.menu" id="stock.menu_stock_uom_form_action">
    <field name="action" ref="uom_list_action"/>
</record>

最佳答案

为了执行Nross2781的查找,您必须重写ir.actions.act_window进行记录。

<record model="ir.actions.act_window" id="uom_list_action">
    <field name="name">Units Of Measurement</field>
    <field name="res_model">product.uom</field>
    <field name="domain">[("myvariable","!=",True)]</field>
    <field name="view_mode">tree,form</field>
</record>


但是,您可能需要考虑将过滤器添加到搜索视图中,这样会更加灵活。您还可以查看默认情况下不显示的记录。

<record model="ir.ui.view" id="uom_search_view">
    <field name="name">uom.search</field>
    <field name="model">product.uom</field>
    <field name="arch" type="xml">
        <search string="Units Of Measurement">
            <filter name="my_var_is_true" string="My Variable" domain="[('myvariable','=',True)]"/>
            <filter name="my_var_is_false" string="Not My Variable" domain="[('myvariable','!=',True)]"/>
        </search>
    </field>
</record>

10-08 18:00