From eebdef1a99e8c1cf2a75644a006d5e598d5f6e91 Mon Sep 17 00:00:00 2001 From: Simon Lejeune Date: Tue, 23 Aug 2016 14:47:33 +0200 Subject: [PATCH] [FIX] calendar: traceback during create The onchange produced a traceback because, even if start and stop are required, they have no default value. Adapted `_get_duration` function so that it is robust to that usecase. --- addons/calendar/models/calendar.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/calendar/models/calendar.py b/addons/calendar/models/calendar.py index 770777be536..ea47d1d3254 100644 --- a/addons/calendar/models/calendar.py +++ b/addons/calendar/models/calendar.py @@ -641,11 +641,12 @@ class Meeting(models.Model): def _get_duration(self, start, stop): """ Get the duration value between the 2 given dates. """ - diff = fields.Datetime.from_string(stop) - fields.Datetime.from_string(start) - if diff: - duration = float(diff.days) * 24 + (float(diff.seconds) / 3600) - return round(duration, 2) - return 0.0 + if start and stop: + diff = fields.Datetime.from_string(stop) - fields.Datetime.from_string(start) + if diff: + duration = float(diff.days) * 24 + (float(diff.seconds) / 3600) + return round(duration, 2) + return 0.0 name = fields.Char('Meeting Subject', required=True, states={'done': [('readonly', True)]}) state = fields.Selection([('draft', 'Unconfirmed'), ('open', 'Confirmed')], string='Status', readonly=True, track_visibility='onchange', default='draft')