diff --git a/models/calendar.py b/models/calendar.py index 9022995d4a88b05c708a94b62f830f730f1dc1d7..34b3052385dcc813175ced08dfa1b3c809658d5c 100644 --- a/models/calendar.py +++ b/models/calendar.py @@ -117,6 +117,7 @@ class CGScopCalendar(models.Model): # Récupère les entrées en intersection # avec la plage horaire entries = self.search([ + '|', '|', '&', ('start', '>', event.start), @@ -124,13 +125,18 @@ class CGScopCalendar(models.Model): '&', ('stop', '>', event.start), ('stop', '<', event.stop), + '&', + ('start', '<=', event.start), + ('stop', '>=', event.stop), ('user_id', '=', self.env.uid), ('project_id', '=', event.project_id.id), - ('id', '!=', event.id)]) + ('id', '!=', event.id) + ]) if entries: raise ValidationError( "Vous ne pourvez programmer 2 évènements avec le " - "même code activité sur la même plage horaire") + "même code activité sur la même plage horaire\n" + "Evènement : %s" % str(entries.mapped('name'))[1:-1]) # ------------------------------------------------------ # Fonction boutons