def _compute_time_statistics(self): for visitor in self: visitor.time_since_last_action = _format_time_ago( self.env, (datetime.now() - visitor.last_connection_datetime)) visitor.is_connected = ( datetime.now() - visitor.last_connection_datetime) < timedelta(minutes=5)
def _compute_time_statistics(self): results = self.env['website.visitor'].search_read([('id', 'in', self.ids)], ['id', 'last_connection_datetime']) mapped_data = {result['id']: result['last_connection_datetime'] for result in results} for visitor in self: last_connection_date = mapped_data[visitor.id] visitor.time_since_last_action = _format_time_ago(self.env, (datetime.now() - last_connection_date)) visitor.is_connected = (datetime.now() - last_connection_date) < timedelta(minutes=5)
def _compute_time_statistics(self): results = self.env['website.visitor.lastconnection'].read_group([('visitor_id', 'in', self.ids)], ['visitor_id', 'connection_datetime:max'], ['visitor_id']) mapped_data = {result['visitor_id'][0]: result['connection_datetime'] for result in results} for visitor in self: last_connection_datetime = mapped_data.get(visitor.id, False) if last_connection_datetime: visitor.last_connection_datetime = last_connection_datetime visitor.time_since_last_action = _format_time_ago(self.env, (datetime.now() - last_connection_datetime)) visitor.is_connected = (datetime.now() - last_connection_datetime) < timedelta(minutes=5)
def _format_published_date(self, published_date): """ Formats to '5 minutes' instead of date if not older than 12 hours. """ if (datetime.now() - published_date) < timedelta(hours=12): return _format_time_ago(self.env, (datetime.now() - published_date), add_direction=False) else: return format_date(self.env, published_date)
def _compute_duration_str(self): for event in self: event.duration_str = _format_time_ago(self.env, event.date_end - event.date_begin, add_direction=False)