golem/golem_activity_registration_slot/models/golem_activity_registration_slot.py
2018-11-02 11:52:34 +01:00

48 lines
2.0 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
# Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
# 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 <http://www.gnu.org/licenses/>.
""" GOLEM Activity Registration Slot """
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class GolemActivityRegistrationSlot(models.Model):
""" GOLEM Activity Registration Slot """
_name = 'golem.activity.registration.slot'
_order = 'sequence'
_description = 'GOLEM Activity Registration Slot'
activity_id = fields.Many2one('golem.activity', required=True,
string='Activity', ondelete='cascade',
index=True)
member_id = fields.Many2one('golem.member', string='Member',
ondelete='cascade', index=True)
hour_start = fields.Float('Start time')
hour_stop = fields.Float('Stop time')
sequence = fields.Integer('Sequence')
@api.constrains('hour_start', 'hour_stop')
def check_slot_hours(self):
""" Check slot hours consistency """
for slot in self:
if slot.hour_start < slot.activity_id.hour_start or \
slot.hour_stop > slot.activity_id.hour_stop:
verr = _(u'Slot start and stop must be between activity start and'
' activity stop.')
raise ValidationError(verr)