Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
7 ตอบกลับ
6295 มุมมอง

Hi,

To make a required field based on the state is easy we should make something like that  :

note = fields.Text(string='Motif d\'ouverture', states={'Done': [('required', True)]} )

but what i'm looking for is when we want to change  the state from New to Done it should give us an error message to attribute a value for this field ( note ).

note is not required in New State.

note field is just required in Done state


Any idea,


Regards,


อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

hello , 

Just try this in xml

attrs="{'required' :[('state','in',['done'])]}"

อวตาร
ละทิ้ง
ผู้เขียน

proceed by using XML as your comment or with python as i described it give the same result.

ผู้เขียน คำตอบที่ดีที่สุด

It's my own module ( from scratch)

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hope this help:

from openerp import models, fields, api, exceptions, _

@api.multi
def button_change_state(self):
     if not self.note:
         raise exceptions.Warning(_('Warning!'), _("Please put note!"))
     self.state = 'done'
     return True
อวตาร
ละทิ้ง
ผู้เขียน

Thanks, but Sadly nothig happen when adding your code

U need to add the button in xml view as an object. Or if its module by Odoo then u need to inherit class and use the super method.

ผู้เขียน

It's My own module and buttons are already created as type="object"