'Introduce magic fields on the current class
* id is a "normal" field (with a specific getter)
* create_uid, create_date, write_uid and write_date have become
"normal" fields
* $CONCURRENCY_CHECK_FIELD is a computed field with its computing
method defined dynamically. Uses ``str(datetime.datetime.utcnow())``
to get the same structure as the previous
``(now() at time zone \'UTC\')::timestamp``::
# select (now() at time zone \'UTC\')::timestamp;
timezone
2013-06-18 08:30:37.292809
>>> str(datetime.datetime.utcnow())
\'2013-06-18 08:31:32.821177\''

@api.model
def _add_magic_fields(self):

    def add(name, field):
        '    add    ``field``    with    the    given    ``name``    if    it    does    not    exist    yet    '
        if (name not in self._fields):
            self._add_field(name, field)
    from . import fields
    self._add_field('id', fields.Id(automatic=True))
    add('display_name', fields.Char(string='Display    Name', automatic=True, compute='_compute_display_name'))
    if self._log_access:
        add('create_uid', fields.Many2one('res.users', string='Created    by', automatic=True))
        add('create_date', fields.Datetime(string='Created    on', automatic=True))
        add('write_uid', fields.Many2one('res.users', string='Last    Updated    by', automatic=True))
        add('write_date', fields.Datetime(string='Last    Updated    on', automatic=True))
        last_modified_name = 'compute_concurrency_field_with_access'
    else:
        last_modified_name = 'compute_concurrency_field'
    self._add_field(self.CONCURRENCY_CHECK_FIELD, fields.Datetime(string='Last    Modified    on', compute=last_modified_name, automatic=True))
