from odoo import fields, models from odoo.exceptions import UserError class DirectiveDeleteWizard(models.TransientModel): _name = "directive.delete.wizard" _description = "Directive Delete Wizard" mode = fields.Selection( [ ("archive", "Мягкое удаление (архивировать)"), ("delete", "Полное удаление (unlink)"), ], string="Режим", required=True, default="archive", ) 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: return {"type": "ir.actions.act_window_close"} if self.mode == "archive": record._action_archive() else: record._action_delete_hard() return {"type": "ir.actions.act_window_close"}