''' Created on 2 janv. 2017 @author: Thibault Francois ''' from odoo import models, fields, api, _ class GenerateShiftTemplate(models.TransientModel): _name = 'beesddoo.shift.generate_shift_template' _description = 'beesddoo.shift.generate_shift_template' day_ids = fields.Many2many('beesdoo.shift.daynumber', relation='template_gen_day_number_rel', column1='wizard_id', column2='day_id') planning_id = fields.Many2one('beesdoo.shift.planning', required=True) type_id = fields.Many2one('beesdoo.shift.type', default=lambda self: self._context.get('active_id')) line_ids = fields.One2many('beesddoo.shift.generate_shift_template.line', 'wizard_id') @api.multi def generate(self): self.ensure_one() ids = [] for day in self.day_ids: for line in self.line_ids: shift_template_data = { 'name': '%s' % self.type_id.name, 'planning_id': self.planning_id.id, 'task_type_id': self.type_id.id, 'day_nb_id': day.id, 'start_time': line.start_time, 'end_time': line.end_time, 'duration': line.end_time - line.start_time, 'worker_nb': line.worker_nb, } new_rec = self.env['beesdoo.shift.template'].create(shift_template_data) ids.append(new_rec.id) return { 'name': _('Generated Shift Template'), 'type': 'ir.actions.act_window', 'view_type': 'form', 'view_mode': 'kanban,tree,form', 'res_model': 'beesdoo.shift.template', 'target': 'current', 'domain': [('id', 'in', ids)], 'context': {'group_by': 'day_nb_id'}, } class GenerateShiftTemplateLine(models.TransientModel): _name = 'beesddoo.shift.generate_shift_template.line' _description = 'beesddoo.shift.generate_shift_template.line' wizard_id = fields.Many2one('beesddoo.shift.generate_shift_template') start_time = fields.Float(required=True) end_time = fields.Float(required=True) worker_nb = fields.Integer(default=1)