diff --git a/sao/src/view/calendar.js b/sao/src/view/calendar.js index 51ae25784b..0800848fcb 100644 --- a/sao/src/view/calendar.js +++ b/sao/src/view/calendar.js @@ -309,13 +309,18 @@ var last_datetime = Sao.DateTime(this.end); var dtstart = this.attributes.dtstart; var dtend = this.attributes.dtend || dtstart; - return ['OR', + return [ + [dtstart, '!=', null], + [dtend, '!=', null], + ['OR', ['AND', [dtstart, '>=', first_datetime], [dtstart, '<', last_datetime]], ['AND', [dtend, '>=', first_datetime], [dtend, '<', last_datetime]], ['AND', [dtstart, '<', first_datetime], - [dtend, '>', last_datetime]]]; + [dtend, '>', last_datetime]], + ], + ]; }, get_displayed_period: function(){ var DatesPeriod = []; diff --git a/tryton/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py b/tryton/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py index fc3f3e7539..af9dc0db0d 100644 --- a/tryton/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py +++ b/tryton/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py @@ -65,13 +65,18 @@ class Calendar_(goocalendar.Calendar): self.current_domain_period.get_dates(True) dtstart = self.attrs['dtstart'] dtend = self.attrs.get('dtend') or dtstart - domain = ['OR', - ['AND', (dtstart, '>=', first_datetime), - (dtstart, '<', last_datetime)], - ['AND', (dtend, '>=', first_datetime), - (dtend, '<', last_datetime)], - ['AND', (dtstart, '<', first_datetime), - (dtend, '>', last_datetime)]] + domain = [ + (dtstart, '!=', None), + (dtend, '!=', None), + ['OR', + ['AND', (dtstart, '>=', first_datetime), + (dtstart, '<', last_datetime)], + ['AND', (dtend, '>=', first_datetime), + (dtend, '<', last_datetime)], + ['AND', (dtstart, '<', first_datetime), + (dtend, '>', last_datetime)], + ], + ] return domain def get_colors(self, record):