diff --git a/sao/src/view/calendar.js b/sao/src/view/calendar.js index 8252face1e..14204536ff 100644 --- a/sao/src/view/calendar.js +++ b/sao/src/view/calendar.js @@ -350,13 +350,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 76e46dc683..906a007bb3 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 @@ -67,13 +67,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):