一排树视图巫毒

时间:2018-07-31 12:46:19

标签: python odoo odoo-10

当记录具有“ x”状态时,我试图在树视图中放置不可见的整行,但事实是,我可以通过在每个字段中放置{invisible}属性来使其不可见,但这不是事实我想要,因为这使我可以选择记录,如下图所示:

enter image description here

这是我在树状视图中的代码:

<record id="dues_control_tree" model="ir.ui.view">
        <field name="name">dues.control.tree</field>
        <field name="model">dues.control</field>
        <field name="arch" type="xml">
            <tree string="Listado De Pagos" decoration-info ="status==2" decoration-danger ="status==1">
              <field name="re_customer" attrs="{'invisible':[('status', '=', 2)]}" />
              <field name="n_invoice" attrs="{'invisible':[('status', '=', 2)]}" />
              <field name="amount_total" attrs="{'invisible':[('status', '=', 2)]}" />
              <field name="number_dues" attrs="{'invisible':[('status', '=', 2)]}" />
              <field name="amount_dues" attrs="{'invisible':[('status', '=', 2)]}" /> 
              <field name="pay_amount_dues" attrs="{'invisible':[('status', '=', 2)]}"/>
              <field name="status" attrs="{'invisible':[('status', '=', 2)]}"/>
            </tree>
        </field>
    </record>

问题是我希望它不被显示,并且当您具有X状态时,无法选择整行。

2 个答案:

答案 0 :(得分:1)

您不必使所有行都不可见,而应使用domain。 这有帮助

<record model="ir.actions.act_window" id="your_action_id">
   <field name="name">dues.control.action</field>
   <field name="res_model">dues.control</field>
   <field name="view_mode">tree,form</field>
   <field name="domain">
         [('status', '!=', 2)]
   </field>
</record>

答案 1 :(得分:0)

您正在尝试为此树视图实现记录规则。 最好的方法是使用ir.actions.server而不是ir.actions.window。 (当有人单击菜单项时触发并显示此树视图的操作) 您可以在该操作服务器上设置域并限制要显示的行。 在动作服务器的代码字段中,您可以提及一个函数,当客户端单击相关菜单项时,该函数可以运行并在显示行时设置域。 在该函数上将域设置为不显示状态为X的记录。 This is a solution sample 我敢肯定,这将解决您的问题,尽力而为。