class CmAdmin::Models::Export

def get_records(klass, model, columns, helpers)

def get_records(klass, model, columns, helpers)
  records = klass
  custom_fields = model.available_fields[:index].map{|field| field if field.field_type == :custom}.compact
  normal_fields = model.available_fields[:index].map{|field| field unless field.field_type == :custom}.compact
  deserialized_columns = CmAdmin::Utils.deserialize_csv_columns(columns, :as_json_params)
  # This includes isn't recursve, a full solution should be recursive
  records_arr = []
  records.includes(deserialized_columns[:include].keys).find_each do |record|
    record_hash = record.as_json({only: normal_fields.map(&:field_name)})
    custom_fields.each do |field|
      record_hash[field.field_name.to_sym] = helpers.send(field.helper_method, record, field.field_name)
    end
    records_arr << record_hash
  end
  records_arr
end