from odoo import api, fields, models from odoo.exceptions import UserError class DirectiveChooseGroupWizard(models.TransientModel): _name = "directive.choose.group.wizard" _description = "Choose Directive Template Group" template_group_id = fields.Many2one( "directive.template.group", string="Группа шаблонов", required=True, # domain=lambda self: self._domain_template_group(), ) @api.model def _domain_template_group(self): active_model = self.env.context.get("active_model") return ["|", ("applicable_model", "=", False), ("applicable_model", "=", active_model or False)] def action_confirm(self): active_model = self.env.context.get("active_model") active_id = self.env.context.get("active_id") if not active_model or not active_id: raise UserError("No active record in context.") record = self.env[active_model].browse(active_id).exists() if not record: raise UserError("Source record not found.") if not hasattr(record, "directive_template_group_id"): raise UserError("Model does not support directive template group (directive.mixin is not applied).") record.write({"directive_template_group_id": self.template_group_id.id}) return {"type": "ir.actions.act_window_close"}