From 727ab7911dd42b0d324ec1c48395356bdb213519 Mon Sep 17 00:00:00 2001 From: Serghei MIHAI Date: Tue, 16 Sep 2014 09:54:52 +0200 Subject: [PATCH] agenda: displaying overlapping appointments is a service option Closes #5459 --- calebasse/agenda/managers.py | 6 +++++- calebasse/agenda/views.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/calebasse/agenda/managers.py b/calebasse/agenda/managers.py index d2871b9..41e2520 100644 --- a/calebasse/agenda/managers.py +++ b/calebasse/agenda/managers.py @@ -7,6 +7,7 @@ from model_utils.managers import InheritanceManager, PassThroughManager, Inherit from calebasse.agenda.conf import default from calebasse.utils import weeks_since_epoch, weekday_ranks +from calebasse.utils import get_service_setting from calebasse import agenda __all__ = ( @@ -78,7 +79,10 @@ class EventQuerySet(InheritanceQuerySet): quarter = 0 interval = IntervalSet.between(start_datetime, end_datetime, False) mins = quarter * 15 - crossed_events = self.overlap_occurences(start_datetime, events) + if get_service_setting('show_overlapping_appointments'): + crossed_events = self.overlap_occurences(start_datetime, events) + else: + crossed_events = [] if len(crossed_events) > 1: result[start_datetime.hour][quarter].append((mins, {'id': participant.id, 'dispo': 'overlap'})) elif interval.intersection(events_intervals): diff --git a/calebasse/agenda/views.py b/calebasse/agenda/views.py index 4abb1ed..bd8b46e 100644 --- a/calebasse/agenda/views.py +++ b/calebasse/agenda/views.py @@ -22,6 +22,7 @@ from calebasse.actes.validation_states import VALIDATION_STATES from calebasse.actes.models import Act, ValidationMessage from calebasse.actes.validation import (automated_validation, unlock_all_acts_of_the_day) from calebasse import cbv +from calebasse.utils import get_service_setting from calebasse.agenda.forms import (NewAppointmentForm, NewEventForm, UpdatePeriodicAppointmentForm, DisablePatientAppointmentForm, UpdateAppointmentForm, UpdatePeriodicEventForm, @@ -614,7 +615,10 @@ class AjaxDisponibilityColumnView(TemplateView): if events: for event in events: - overlap_events = Event.objects.overlap_occurences(start_datetime, events) + if get_service_setting('show_overlapping_appointments'): + overlap_events = Event.objects.overlap_occurences(start_datetime, events) + else: + overlap_events = [] if len(overlap_events) > 1: dispo = 'overlap' elif event.start_datetime <= start_datetime and event.end_datetime >= end_datetime: -- 2.1.0