diff --git a/addons/calendar/calendar.py b/addons/calendar/calendar.py index 9b251ee80fd..62f149e161d 100644 --- a/addons/calendar/calendar.py +++ b/addons/calendar/calendar.py @@ -957,9 +957,7 @@ class calendar_event(osv.Model): def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): - if event.start_datetime and event.stop_datetime < event.start_datetime: - return False - if event.start_date and event.stop_date < event.start_date: + if event.stop < event.start: return False return True @@ -1007,6 +1005,16 @@ class calendar_event(osv.Model): return {'value': value} + def onchange_duration(self, cr, uid, ids, start=False, duration=False, context=None): + value = {} + if not (start and duration): + return value + start = datetime.strptime(start, DEFAULT_SERVER_DATETIME_FORMAT) + value['stop_date'] = (start + timedelta(hours=duration)).strftime(DEFAULT_SERVER_DATE_FORMAT) + value['stop_datetime'] = (start + timedelta(hours=duration)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) + value['start_date'] = start.strftime(DEFAULT_SERVER_DATE_FORMAT) + return {'value': value} + def onchange_dates(self, cr, uid, ids, fromtype, start=False, end=False, checkallday=False, allday=False, context=None): """Returns duration and end date based on values passed @@ -1749,8 +1757,11 @@ class mail_message(osv.Model): convert the search on real ids in the case it was asked on virtual ids, then call super() ''' for index in range(len(args)): - if args[index][0] == "res_id" and isinstance(args[index][2], basestring): - args[index][2] = get_real_ids(args[index][2]) + if args[index][0] == "res_id": + if isinstance(args[index][2], basestring): + args[index][2] = get_real_ids(args[index][2]) + elif isinstance(args[index][2], list): + args[index] = (args[index][0], args[index][1], map(lambda x: get_real_ids(x), args[index][2])) return super(mail_message, self).search(cr, uid, args, offset=offset, limit=limit, order=order, context=context, count=count) def _find_allowed_model_wise(self, cr, uid, doc_model, doc_dict, context=None): diff --git a/addons/calendar/calendar_view.xml b/addons/calendar/calendar_view.xml index 4d17f5c04cc..b90a0b70d83 100644 --- a/addons/calendar/calendar_view.xml +++ b/addons/calendar/calendar_view.xml @@ -105,13 +105,14 @@ - - -