From 3f89b56f4f2e90b2977040688a332d86f3b55369 Mon Sep 17 00:00:00 2001
From: Benjamin <benjamin@le-filament.com>
Date: Tue, 24 Mar 2020 13:31:47 +0100
Subject: [PATCH] =?UTF-8?q?[cgscop=20#172]=20ajout=20contrainte=20inclusio?=
 =?UTF-8?q?n=20cr=C3=A9neau=20horaire?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 models/calendar.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/models/calendar.py b/models/calendar.py
index 9022995..34b3052 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
-- 
GitLab