You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.5 KiB

7 years ago
7 years ago
  1. # Copyright 2011 Raphaël Valyi, Renato Lima, Guewen Baconnier, Sodexis
  2. # Copyright 2017 Akretion (http://www.akretion.com)
  3. # Mourad EL HADJ MIMOUNE <mourad.elhadj.mimoune@akretion.com>
  4. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
  5. from odoo import api, fields, models, _
  6. from odoo.exceptions import ValidationError
  7. class ExceptionRuleConfirm(models.AbstractModel):
  8. _name = "exception.rule.confirm"
  9. _description = "Exception Rule Confirm Wizard"
  10. related_model_id = fields.Many2one("base.exception")
  11. exception_ids = fields.Many2many(
  12. "exception.rule", string="Exceptions to resolve", readonly=True
  13. )
  14. ignore = fields.Boolean("Ignore Exceptions")
  15. @api.model
  16. def default_get(self, field_list):
  17. res = super(ExceptionRuleConfirm, self).default_get(field_list)
  18. current_model = self.env.context.get("active_model")
  19. model_except_obj = self.env[current_model]
  20. active_ids = self.env.context.get("active_ids")
  21. if len(active_ids) > 1:
  22. raise ValidationError(
  23. _("Only 1 ID accepted, got %r.") % active_ids
  24. )
  25. active_id = active_ids[0]
  26. related_model_except = model_except_obj.browse(active_id)
  27. exception_ids = related_model_except.exception_ids.ids
  28. res.update({"exception_ids": [(6, 0, exception_ids)]})
  29. res.update({"related_model_id": active_id})
  30. return res
  31. @api.multi
  32. def action_confirm(self):
  33. self.ensure_one()
  34. return {"type": "ir.actions.act_window_close"}