[FIX] calendar: set duration on either stop or start date updated
Not only when both are.
This commit is contained in:
parent
dd558c40b8
commit
faf45db0d2
|
@ -851,10 +851,11 @@ class calendar_event(osv.Model):
|
||||||
if values.get('start_datetime') or values.get('start_date') or values.get('start') \
|
if values.get('start_datetime') or values.get('start_date') or values.get('start') \
|
||||||
or values.get('stop_datetime') or values.get('stop_date') or values.get('stop'):
|
or values.get('stop_datetime') or values.get('stop_date') or values.get('stop'):
|
||||||
allday = values.get("allday", None)
|
allday = values.get("allday", None)
|
||||||
|
event = self.browse(cr, uid, id, context=context)
|
||||||
|
|
||||||
if allday is None:
|
if allday is None:
|
||||||
if id:
|
if id:
|
||||||
allday = self.read(cr, uid, [id], ['allday'], context=context)[0].get('allday')
|
allday = event.allday
|
||||||
else:
|
else:
|
||||||
allday = False
|
allday = False
|
||||||
_logger.warning("Calendar - All day is not specified, arbitrarily set to False")
|
_logger.warning("Calendar - All day is not specified, arbitrarily set to False")
|
||||||
|
@ -871,10 +872,16 @@ class calendar_event(osv.Model):
|
||||||
values[fld] = values['%s_%s' % (fld, key)]
|
values[fld] = values['%s_%s' % (fld, key)]
|
||||||
|
|
||||||
diff = False
|
diff = False
|
||||||
if allday and values.get('stop_date') and values.get('start_date'):
|
if allday and (values.get('stop_date') or values.get('start_date')):
|
||||||
diff = datetime.strptime(values['stop_date'].split(' ')[0], DEFAULT_SERVER_DATE_FORMAT) - datetime.strptime(values['start_date'].split(' ')[0], DEFAULT_SERVER_DATE_FORMAT)
|
stop_date = values.get('stop_date') or event.stop_date
|
||||||
elif values.get('stop_datetime') and values.get('start_datetime'):
|
start_date = values.get('start_date') or event.start_date
|
||||||
diff = datetime.strptime(values['stop_datetime'].split('.')[0], DEFAULT_SERVER_DATETIME_FORMAT) - datetime.strptime(values['start_datetime'].split('.')[0], DEFAULT_SERVER_DATETIME_FORMAT)
|
if stop_date and start_date:
|
||||||
|
diff = datetime.strptime(stop_date.split(' ')[0], DEFAULT_SERVER_DATE_FORMAT) - datetime.strptime(start_date.split(' ')[0], DEFAULT_SERVER_DATE_FORMAT)
|
||||||
|
elif values.get('stop_datetime') or values.get('start_datetime'):
|
||||||
|
stop_datetime = values.get('stop_datetime') or event.stop_datetime
|
||||||
|
start_datetime = values.get('start_datetime') or event.start_datetime
|
||||||
|
if stop_datetime and start_datetime:
|
||||||
|
diff = datetime.strptime(stop_datetime.split('.')[0], DEFAULT_SERVER_DATETIME_FORMAT) - datetime.strptime(start_datetime.split('.')[0], DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
if diff:
|
if diff:
|
||||||
duration = float(diff.days) * 24 + (float(diff.seconds) / 3600)
|
duration = float(diff.days) * 24 + (float(diff.seconds) / 3600)
|
||||||
values['duration'] = round(duration, 2)
|
values['duration'] = round(duration, 2)
|
||||||
|
|
Loading…
Reference in New Issue