'generate the message body with the changed values
:param fields : list of fields to track
:returns the body of the message for the current crm.lead'

@api.one
def _mail_body(self, fields):

    title = ('%s    :    %s\n' % ((_('Merged    opportunity') if (self.type == 'opportunity') else _('Merged    lead')), self.name))
    body = [title]
    fields = self.env['ir.model.fields'].search([('name', 'in', (fields or [])), ('model_id.model', '=', self._name)])
    for field in fields:
        value = getattr(self, field.name, False)
        if (field.ttype == 'selection'):
            value = dict(field.get_values(self.env)).get(value, value)
        elif (field.ttype == 'many2one'):
            if value:
                value = value.sudo().name_get()[0][1]
        elif (field.ttype == 'many2many'):
            if value:
                value = ','.join((val.name_get()[0][1] for val in value.sudo()))
        body.append(('%s:    %s' % (field.field_description, (value or ''))))
    return '<br/>'.join((body + ['<br/>']))
