class Avo::BaseResource

def get_fields(panel: nil, reflection: nil)

def get_fields(panel: nil, reflection: nil)
  fields = get_field_definitions
    .select do |field|
      field.send("show_on_#{@view}")
    end
    .select do |field|
      field.visible?
    end
    .select do |field|
      # Strip out the reflection field in index queries with a parent association.
      if reflection.present? &&
          reflection.options.present? &&
          field.respond_to?(:polymorphic_as) &&
          field.polymorphic_as.to_s == reflection.options[:as].to_s
        next
      end
      if field.respond_to?(:foreign_key) &&
          reflection.present? &&
          reflection.respond_to?(:foreign_key) &&
          reflection.foreign_key != field.foreign_key
        next
      end
      true
    end
  if panel.present?
    fields = fields.select do |field|
      field.panel_name == panel
    end
  end
  hydrate_fields(model: @model, view: @view)
  fields
end