# -*- coding: utf-8 -*- from odoo import api, fields, models, _ from odoo.exceptions import UserError class SignItem(models.Model): _inherit = "sign.item" sequence_id = fields.Many2one('ir.sequence', string="Sequence") item_type = fields.Selection(related='type_id.item_type') # Proxy fields to allow editing sequence from the sign item sequence_prefix = fields.Char(related='sequence_id.prefix', readonly=False) sequence_padding = fields.Integer(related='sequence_id.padding', readonly=False) sequence_number_next = fields.Integer(related='sequence_id.number_next_actual', readonly=False, string="Next Number") @api.onchange('type_id') def _onchange_type_id_sequence(self): if self.type_id.item_type == 'sequence' and not self.sequence_id: # Optional: auto-create or encourage selection? # For now, just leave empty for user to select. pass def action_create_sequence(self): """ Helper to create a new sequence for this item if needed """ self.ensure_one() if not self.sequence_id: seq = self.env['ir.sequence'].create({ 'name': f"Sign Sequence - {self.template_id.name}", 'code': f"sign.item.{self.id}", 'prefix': 'SEQ-', 'padding': 4, }) self.sequence_id = seq