跳至內容
選單
此問題已被標幟
4 回覆
9158 瀏覽次數

Hello Community

I have a problem , i have on2many tree-view with multiple columns(fields) , i want some fields to be shown under Condition (A) and the others on Condition(B)  without hiding the Fields in condition A  , i tried the attrs it didn't work I've tried some solution like this : invisible="context.get('type') == 'out_invoice' "   but it work only one if i change the condition later the fields still hiding 

頭像
捨棄
最佳答案

hello 

you can hide column using the following example. this example available in sale order. 

you can try like this

<field name="qty_invoiced"attrs="{'column_invisible': [('parent.state', 'not in', ['sale', 'done'])]}"/>

頭像
捨棄
最佳答案
This is for Account Move line 
set as per your requiremt 
@api.model
def fields_view_get(self, view_id=None, view_type=False, toolbar=False, submenu=False):
res = super(AccountMoveLine, self).fields_view_get(view_id, view_type, toolbar=toolbar, submenu=submenu)
print ('----type---', view_type)
if view_type == 'tree':
print ('OOOOOOOOOOOOOOOOOO')
doc = etree.XML(res['arch'])
partner_string = _('Supplier')
for node in doc.xpath("//field[@name='partner_id']"):
node.set('string', partner_string)
for node in doc.xpath("//field[@name='name']"):
node.set('invisible', 'True')
doc.remove(node)

res['arch'] = etree.tostring(doc)
return res
頭像
捨棄
最佳答案

You have to do it by inheriting the fields_view_get function.

This example is for sale order line view, just modify to meet you requirements to hide product_id column

@api.model   

def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
        res = super(yourClassName, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar,                     submenu=submenu)

         if res['name'] == 'thisIsTheIDofYourView': #to filter your view
         doc = etree.XML(res['fields']['order_line']['views']['tree']['arch'])

         if CONDITION A:
                for node in doc.xpath("//field[@name='product_id']"):
                    node.set('invisible', '0')                   

                    setup_modifiers(node)

        res['fields']['order_line']['views']['tree']['arch'] = etree.tostring(doc)

return res

頭像
捨棄
作者

Thank you Juan for your answer , unfortunately it didn't work in my case