'Setup the fields, except for recomputation triggers.'

@api.model
def _setup_fields(self, partial):

    cls = type(self)
    bad_fields = []
    for (name, field) in cls._fields.iteritems():
        try:
            field.setup_full(self)
        except Exception:
            if (partial and field.manual):
                bad_fields.append(name)
                continue
            raise
    for name in bad_fields:
        del cls._fields[name]
        delattr(cls, name)
    groups = defaultdict(list)
    for field in cls._fields.itervalues():
        if field.compute:
            cls._field_computed[field] = group = groups[field.compute]
            group.append(field)
    for fields in groups.itervalues():
        compute_sudo = fields[0].compute_sudo
        if (not all(((field.compute_sudo == compute_sudo) for field in fields))):
            _logger.warning("%s:    inconsistent    'compute_sudo'    for    computed    fields:    %s", self._name, ',    '.join((field.name for field in fields)))
