Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
1 Відповісти
18937 Переглядів

Hello,

Im trying to remove/hide the "Add a line" link and the 'delete' button in one2many tree view base on the condition of the state. 

Ex: They just appear in the state: 'draft. When changing the state, they will be hidden/remove!

model_b.py :

name = fields.Many2one('hr.employee')

o_2_m = fields.One2many('model.a', 'keya')

state = fields.Selection([

            ('draft', 'DRAF'),

            ('confirm', 'CONFIRMED'),

            (cancel', 'CANCEL'),

            ],default='draf')


model_a.py :

name = fields.Many2one('hr.employee')

keya = fields.Many2one('model.b')

num_1 = fields.Float('Number')

ref_1 = fields.Char('Reference')


I'd tried to set 'readonly' for all related field in file XML:

<notebook>

                            <page name="Want_to_hide_button" string="Test">

                                <field name="o_2_m" options="{'no_create': True}" widget='many2many'>

                                    <tree string="ABC DEF">

                                        <field name="state" invisible="1"/>

                                         <field name="name" attrs="{'readonly':[('state' , '!=', 'draft')]}"/>

                                         <field name="num_1" widget="monetary" attrs="{'readonly':[('state' , '!=', 'draft')]}"/>

                                         <field name="ref_1" attrs="{'readonly':[('state' , '!=', 'draft')]}"/>

                                         <field name="currency_id" invisible="1"/>

                                    </tree>

                                </field>

                           </page>

</notebook>


But it still not worked.


Please help.

Thank you!


Аватар
Відмінити
Найкраща відповідь

Hi ,

    You logic is correct but you need not give that to all the fields in the one2many tree view,

You can define that in the field definition itself in py file like,

o_2_m = fields.One2many('model.a', 'keya', string='One2many', readonly=True, states={'draft': [('readonly', False)]}, copy=False)

or 

In xml, you can give that

<field name="o_2_m" attrs="{'readonly': [('state', '!=', 'draft')]}" widget='many2many'>

Thanks

Аватар
Відмінити
Автор

Yes, I got it. Thank you, Karthikeyan

Related Posts Відповіді Переглядів Дія
1
квіт. 25
3975
3
бер. 21
5298
1
черв. 17
6710
1
жовт. 23
5132
0
лют. 21
3554