Odoo フォーム ビューで条件付きでフィールドを非表示にしようとしています。「販売可能」がチェックされている場合 ==> 「プロダクトマネージャー」は非表示にする必要があります:
製品フォームの継承されたビューで、ドメインで属性「非表示」を使用してみました:
<record model="ir.ui.view" id="product_template_form_inherit">
<field name="name">product.template.product.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view" />
<field name="arch" type="xml">
<field name="product_manager" position="attributes">
<attribute name="invisible">[('sale_ok', '=', True)]</attribute>
</field>
</field>
</record>
フィールド sales_ok が true の場合、product_manager フィールドは実際には非表示になります。しかし、フィールド sales_ok が再び false になると、フィールド product_manager は非表示のままになります。
代わりにこれも試しました:
<field name="product_manager" attrs="{'invisible': [('sale_ok', '=', True)]}"/>
これもうまくいきません。
次のような他のドメインも試しました。
[('sale_ok', '==', True)]
[('sale_ok', '!=', False)]
[('sale_ok', '=', 'True')]
ここで何が問題なのかよくわかりません...チェックされている(チェックされていない)ときにそれを(見えないように)する方法は?
私が最終的に求めているのは、次のことです。チェックボックスがオンになっている場合、フォームは保存せずにすぐに変更されます。フィールドを追加および削除する必要があります。それは可能ですか?
編集:
ChesuCR の回答を使用して、プロダクト マネージャーを非表示/非表示にできるようになりました。ただし、「loc_rack」(Storage Location==>Rack) で同じことを試みると、エラーが発生します。
Field(s) `arch` failed against a constraint: Invalid view definition
Error details:
Element '<field name="loc_rack">' cannot be located in parent view
これは私が使用したコードです:
<field name="loc_rack" position="replace">
<field name="loc_rack" attrs="{'invisible': [('sale_ok', '=', True)]}"/>
</field>
このフィールドで同じことができないのはなぜですか?