This commit implements a mixin, `MailTrackingDurationMixin`, that can be added to a model with a `many2one` field. It computes the time a record spends in each value the many2one field takes and stores it in a JSON field (`duration_tracking`). The primary use is with the StatusBarDurationField (`widget='statusbar_duration'`), to compute and display the time a record has spent in each stage in the form view statusbar. To specify on what field the computation has to be done, the model that inherits from this mixin has to specify `_track_duration_field`. (e.g. _track_duration_field = 'stage_id') Computation is based on `mail.tracking.value` messages, so tracking has to be activated for that field. Task-3032773 Part-of: odoo/odoo#108554
65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
# core models (required for mixins)
|
|
from . import mail_alias
|
|
from . import models
|
|
|
|
# mixin
|
|
from . import mail_activity_mixin
|
|
from . import mail_alias_mixin
|
|
from . import mail_render_mixin
|
|
from . import mail_composer_mixin
|
|
from . import mail_thread
|
|
from . import mail_thread_blacklist
|
|
from . import mail_thread_cc
|
|
from . import mail_thread_main_attachment
|
|
from . import mail_tracking_duration_mixin
|
|
from . import template_reset_mixin
|
|
|
|
# mail models
|
|
from . import fetchmail
|
|
from . import mail_notification # keep before as decorated m2m
|
|
from . import mail_activity_type
|
|
from . import mail_activity
|
|
from . import mail_blacklist
|
|
from . import mail_followers
|
|
from . import mail_gateway_allowed
|
|
from . import mail_link_preview
|
|
from . import mail_message_reaction
|
|
from . import mail_message_schedule
|
|
from . import mail_message_subtype
|
|
from . import mail_message
|
|
from . import mail_mail
|
|
from . import mail_tracking_value
|
|
from . import mail_template
|
|
|
|
# discuss
|
|
from . import mail_ice_server
|
|
from . import mail_shortcode
|
|
from . import res_users_settings
|
|
from . import res_users_settings_volumes
|
|
|
|
# odoo models
|
|
from . import bus_presence
|
|
from . import ir_action_act_window
|
|
from . import ir_actions_server
|
|
from . import ir_attachment
|
|
from . import ir_config_parameter
|
|
from . import ir_http
|
|
from . import ir_mail_server
|
|
from . import ir_model
|
|
from . import ir_model_fields
|
|
from . import ir_ui_view
|
|
from . import ir_qweb
|
|
from . import res_company
|
|
from . import res_config_settings
|
|
from . import res_users
|
|
from . import update
|
|
|
|
# after mail specifically as discuss module depends on mail
|
|
from . import discuss
|
|
|
|
# discuss_channel_member must be loaded first
|
|
from . import res_partner
|