Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
2 Răspunsuri
7017 Vizualizări

Odoo V8

I've added a global discount field that I want that I only want editable if the Public Pricelist is selected, unless the user is in the sale manager group, in which case they can edit irrespective of the pricelist selected.

.py

class sale_order(models.Model):
_inherit = 'sale.order'
    ct_global_discount = fields.Float('Global Discount')
    can_apply_discount = fields.Boolean(default=False)

@api.one
@api.onchange('pricelist_id')
def onchange_pricelist_id(self):
    if self.pricelist_id.name != 'Public Pricelist':
        self.ct_global_discount = 0
        if self.env.user.has_group('base.group_sale_manager'):
            self.can_apply_discount = True
        else:
            self.can_apply_discount = False
    else:     
        self.can_apply_discount = True

XML

<xpath expr="//group[@name='sale_total']" position="after">
<field name="can_apply_discount" invisible="1"/>
<field name="ct_global_discount" attrs="{'readonly': ['can_apply_discount', '=', False]}" />
</xpath>


I get an error that can_apply_discount does not exist. I can get this working using the old interface but can't for the life of me see how you get this working with the new API.

Imagine profil
Abandonează
Autor

addition: I've also tried without @api.one but with no luck

Cel mai bun răspuns

Hello Graham Vickrage,

I have seen your scenario you gave attrs on " ct_global_discount " field its syntax is actually wrong.
its should be like this :

<field name="ct_global_discount" attrs="{'readonly':[('can_apply_discount', '=', False)]}"/>

and also small correction, when you add new fields through .py file, must add a label (field string).
e.g:

can_apply_discount = fields.Boolean(string="Can Apply Discount?" default=False)   

Thanks

Imagine profil
Abandonează
Related Posts Răspunsuri Vizualizări Activitate
1
sept. 17
5204
1
sept. 16
9064
1
mar. 15
7995
4
oct. 19
9301
2
iun. 17
4145