# -*- coding: utf-8 -*- """ Event module """ from odoo import models, fields, api, _ from odoo.exceptions import ValidationError class Event(models.Model): """ Event model """ _name = 'coworking.event' _description = 'Event model definition' _order = 'id desc' title = fields.Char(required=True) # manager = fields.Many2one('coworker.users', 'Manager', required=True, index=True) date_start = fields.Datetime(default=fields.Date.context_today, required=True) date_end = fields.Datetime(required=True) duration = fields.Float(compute='_compute_duration') @api.constrains('date_end') def _check_date_end(self): """Test si la modification de la date n'est pas postérieur à la date de début""" if self.date_start > self.date_end: raise ValidationError(_('Date most be supperior to to start date')) @api.depends('date_start', 'date_end') def _compute_duration(self): for event in self: if event.duration is True: t1 = fields.Datetime.from_string(event.date_end) t2 = fields.Datetime.from_string(event.date_start) delta = t1 - t2 hours = delta.days * 24.0 + round(float(delta.seconds) / 3600.0)