33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
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"}
|