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.

35 lines
1.3 KiB

  1. # -*- coding: utf-8 -*-
  2. # © 2011 Raphaël Valyi, Renato Lima, Guewen Baconnier, Sodexis
  3. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  4. from odoo import api, fields, models
  5. class ExceptionRuleConfirm(models.AbstractModel):
  6. _name = 'exception.rule.confirm'
  7. related_model_id = fields.Many2one('base.exception',)
  8. exception_ids = fields.Many2many('exception.rule',
  9. string='Exceptions to resolve',
  10. readonly=True)
  11. ignore = fields.Boolean('Ignore Exceptions')
  12. @api.model
  13. def default_get(self, field_list):
  14. res = super(ExceptionRuleConfirm, self).default_get(field_list)
  15. current_model = self._context.get('active_model')
  16. model_except_obj = self.env[current_model]
  17. active_ids = self._context.get('active_ids')
  18. assert len(active_ids) == 1, "Only 1 ID accepted, got %r" % active_ids
  19. active_id = active_ids[0]
  20. related_model_except = model_except_obj.browse(active_id)
  21. exception_ids = [e.id for e in related_model_except.exception_ids]
  22. res.update({'exception_ids': [(6, 0, exception_ids)]})
  23. res.update({'related_model_id': active_id})
  24. return res
  25. @api.multi
  26. def action_confirm(self):
  27. self.ensure_one()
  28. return {'type': 'ir.actions.act_window_close'}