# -*- coding: utf-8 -*- # Copyright 2018 Youssef El Ouahby # Copyright 2018 Fabien Bourgeois # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . """ GOLEM Activity Registration """ from odoo import models, fields, api, _ from odoo.exceptions import ValidationError class GolemActivityRegistration(models.Model): """ GOLEM Activity Registration Adaptations""" _inherit = 'golem.activity.registration' @api.model def create(self, vals): """ Create registration slot """ reg = super(GolemActivityRegistration, self).create(vals) if reg.activity_id.individual_slots: slots = self.env['golem.activity.registration.slot'].search( [('activity_id', '=', reg.activity_id.id)], order='hour_stop') if len(slots) >= reg.activity_id.slots_number: verr = _(u'No available slot to register in this activity') raise ValidationError(verr) hour_start = slots[-1].hour_stop if slots else reg.activity_id.hour_start self.env['golem.activity.registration.slot'].create({ 'activity_id': reg.activity_id.id, 'member_id': reg.member_id.id, 'hour_start': hour_start, 'hour_stop': hour_start + reg.activity_id.slots_duration }) return reg