コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
6008 ビュー

Is there a way to toggle a <field> visible/invisible, e.g. by using a marker filter?

The goal is to be able to turn on/off m2o field's auto-completion/auto-suggestion on demand, ideally using another dummy filter for that.

アバター
破棄
最善の回答

Why don't you define domain in the field to filter record in auto-completion.
 

アバター
破棄
著作者 最善の回答

Hey Ben,
Many thanks for the hint!

Although using domain to completely disable search field was not quite an intuitive solution (more of a hack), it worked like a charm, indeed! While neither <code>invisible</code>, nor <code>attrs</code> attributes could fetch the changed context, <code>domain</code> attribute was indeed the only one that could access the context.

Here is the complete solution, in case somebody will need it in the future:

XML, search view:
<pre><code>
  <filter string="Disable Autocomplete" name="perm_speedup" context="{'disable_autocomplete': '='}"/>
  <field name="product_id" position="attributes">
      <attribute name="domain">[('id', context.get('disable_autocomplete', '!='), 0)]</attribute>
  </field>
  <field name="product_code" string="Product Exact" filter_domain="[('product_code', '=', self)]"/>
  <field name="product_code"/>
</code></pre>

Python:
<pre><code>
  'product_code': fields.related('product_id', 'default_code', string='Product', type='char', readonly=True),
</code></pre>

Description:
'Disable Autocomplete' filter is turned on by default (in act_window, context={'search_default_perm_speedup':1}).
This allows to quickly type in the desired product code, without waiting for the suggestions to load.
'Product Exact' is used with copy-paste codes or with barcode scanner.
'Product' (default) is used to search for partial codes.
Of course, 'Disable Autocomplete' marker-filter can be turned off when needed.

アバター
破棄
関連投稿 返信 ビュー 活動
1
9月 23
5679
0
11月 16
4860
1
7月 21
4200
7
6月 20
6826
0
12月 16
5326