33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from odoo import fields, models
|
||
|
|
||
|
|
||
|
class IrModelField(models.Model):
|
||
|
_inherit = 'ir.model.fields'
|
||
|
|
||
|
tracking = fields.Integer(
|
||
|
string="Enable Ordered Tracking",
|
||
|
help="If set every modification done to this field is tracked in the chatter. Value is used to order tracking values.",
|
||
|
)
|
||
|
|
||
|
def _reflect_field_params(self, field, model_id):
|
||
|
""" Tracking value can be either a boolean enabling tracking mechanism
|
||
|
on field, either an integer giving the sequence. Default sequence is
|
||
|
set to 100. """
|
||
|
vals = super(IrModelField, self)._reflect_field_params(field, model_id)
|
||
|
tracking = getattr(field, 'tracking', None)
|
||
|
if tracking is True:
|
||
|
tracking = 100
|
||
|
elif tracking is False:
|
||
|
tracking = None
|
||
|
vals['tracking'] = tracking
|
||
|
return vals
|
||
|
|
||
|
def _instanciate_attrs(self, field_data):
|
||
|
attrs = super(IrModelField, self)._instanciate_attrs(field_data)
|
||
|
if attrs and field_data.get('tracking'):
|
||
|
attrs['tracking'] = field_data['tracking']
|
||
|
return attrs
|