i want to show the sequence name based on the value of a selection field 'type', my code is like this:
.xml
<record id='certification_view_form' model='ir.ui.view'> <field name="name">hr.certification.form</field> <field name="model">certificat.order</field> <field name="arch" type="xml"> <form> <header> <button name="action_validate_one" type="object" string="Valider" class="oe_highlight" attrs="{'invisible':[('type','!=','one')]}" state="draft"/> <button name="action_validate_two" type="object" string="Valider" class="oe_highlight" attrs="{'invisible':[('type','!=','two')]}" state="draft"/> field name="state" widget="statusbar"/> </header> <sheet> <div class='oe_title'> <h1> <field name="name" readonly="1" attrs="{'invisible': [('type','!=','one')]}"/> <field name="name_sal" readonly="1" attrs="{'invisible': [('type','!=','two')]}"/> </h1> </div> <group> <field name="type"/> </group> </sheet> </form> </field> </record>
.py
name = fields.Char(string='Reference one', required=True, copy=False, readonly=True, index=True, default=lambda self: ('New')) name_sal = fields.Char(string='Reference two', required=True, copy=False, readonly=True, index=True, default=lambda self: ('New')) @api.model def create(self, vals): if vals.get('name', ('New')) == ('New'): vals['name'] = self.env['ir.sequence'].next_by_code('one.order') or ('New') result = super(certificationsorder, self).create(vals) return result @api.model def create_sal(self, vals): if vals.get('name_sal', ('New')) == ('New'): vals['name_sal'] = self.env['ir.sequence'].next_by_code('two.order') or ('New') result = super(certificationsorder, self).create_sal(vals) return result def action_validate_one(self): for rec in self: rec.state = 'valide' def action_validate_two(self): for rec in self: rec.state = 'valide'
Data/sequence.xml
<record id="seq_one_order" model="ir.sequence"> <field name="name">Type One Order</field> <field name="code">one.order</field> <field name="prefix">ATTESTTRV</field> <field name="padding">5</field> <field name="company_id" eval="False"/> </record> <record id="seq_two_order" model="ir.sequence"> <field name="name">Type Two Order</field> <field name="code">two.order</field> <field name="prefix">ATTESTSAL</field> <field name="padding">5</field> <field name="company_id" eval="False"/> </record>
for the type = one the sequence works fine, but for the type two it dosent work i don't know what is still missing
thanks Eman, it works, sorry for replying that late. thank you again