Skip to content
Extraits de code Groupes Projets
Valider edc5b896 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[cgscop #172] ajout contrainte sur project_id, start, stop pour limiter à 1...

[cgscop #172] ajout contrainte sur project_id, start, stop pour limiter à 1 code UR par plage horaire
parent 89012c04
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -5,7 +5,7 @@ import pytz
from datetime import timedelta
from odoo import models, fields, api
from odoo.exceptions import UserError
from odoo.exceptions import UserError, ValidationError
class CGScopCalendar(models.Model):
......@@ -107,6 +107,31 @@ class CGScopCalendar(models.Model):
fields.Datetime.now() > self.coop_id.ur_regional_convention_date:
self.ur_regional_convention_id = self.coop_id.ur_regional_convention_id
# ------------------------------------------------------
# Contrains
# ------------------------------------------------------
@api.constrains('project_id', 'start', 'stop')
def _check_activity_code(self):
for event in self:
if event.project_id:
# Récupère les entrées en intersection
# avec la plage horaire
entries = self.search([
'|',
'&',
('start', '>', event.start),
('start', '<', event.stop),
'&',
('stop', '>', event.start),
('stop', '<', event.stop),
('user_id', '=', self.env.uid),
('project_id', '=', event.project_id.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")
# ------------------------------------------------------
# Fonction boutons
# ------------------------------------------------------
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter