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 ...@@ -5,7 +5,7 @@ import pytz
from datetime import timedelta from datetime import timedelta
from odoo import models, fields, api from odoo import models, fields, api
from odoo.exceptions import UserError from odoo.exceptions import UserError, ValidationError
class CGScopCalendar(models.Model): class CGScopCalendar(models.Model):
...@@ -107,6 +107,31 @@ class CGScopCalendar(models.Model): ...@@ -107,6 +107,31 @@ class CGScopCalendar(models.Model):
fields.Datetime.now() > self.coop_id.ur_regional_convention_date: fields.Datetime.now() > self.coop_id.ur_regional_convention_date:
self.ur_regional_convention_id = self.coop_id.ur_regional_convention_id 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 # 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