Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Advanced Events

Entity: event.track

Compute Method: _compute_track_time_data

Inputs Method Outputs
""" Compute start and remaining time for track itself. Do everything in
        UTC as we compute only time deltas here. """
now_utc = fields.Datetime.now().replace(microsecond=0, tzinfo=UTC)
for track in self:
            if not (track.date or track.date_end):
                track.is_track_live = track.is_track_soon = track.is_track_today = track.is_track_upcoming = track.is_track_done = False
                track.track_start_relative = track.track_start_remaining = 0
                continue
            date_begin_utc = track.date.replace(tzinfo=UTC)
            date_end_utc = track.date_end.replace(tzinfo=UTC)
            track.is_track_live = date_begin_utc <= now_utc < date_end_utc
            track.is_track_soon = (date_begin_utc - now_utc).total_seconds() < 30*60 if date_begin_utc > now_utc else False
            track.is_track_today = date_begin_utc.date() == now_utc.date()
            track.is_track_upcoming = date_begin_utc > now_utc
            track.is_track_done = date_end_utc <= now_utc
            if date_begin_utc >= now_utc:
                track.track_start_relative = int((date_begin_utc - now_utc).total_seconds())
                track.track_start_remaining = track.track_start_relative
            else:
                track.track_start_relative = int((now_utc - date_begin_utc).total_seconds())
                track.track_start_remaining = 0

Back to entity