35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
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"} |