def METHOD_NAME(obj):
    """
    Return custom fields values (summary, with inherited values) for
    current object, sorted by custom field name.
    Fields for single item:
    * name - name of the custom field
    * value - value of the custom field
    * object - name of the object, from which CFV is inherited, if it's
      inherited, otherwise <none>
    * object_url - absolute url to object from which CFV is inherited, if
      it's inherited, otherwise ''
    :rtype: list of dicts
    """
    result = []
    obj_content_type_id = ContentType.objects.get_for_model(obj).id
    for cfv in obj.custom_fields.select_related('custom_field').order_by(
        'custom_field__name'
    ):
        if (
            cfv.content_type_id == obj_content_type_id and
            cfv.object_id == obj.pk
        ):
            object = '-'
            object_url = ''
        else:
            object = '{}: {}'.format(
                cfv.content_type.model_class()._meta.verbose_name,
                cfv.object
            )
            object_url = cfv.object.get_absolute_url()
        cfv_data = {
            'name': cfv.custom_field.name,
            'value': cfv.value,
            'object': object,
            'object_url': object_url,
        }
        result.append(cfv_data)
    return result