Skip to content

Commit b11db54

Browse files
active_admin 1.3 support
1 parent f45042a commit b11db54

File tree

6 files changed

+38
-13
lines changed

6 files changed

+38
-13
lines changed

lib/active_admin/mongoid.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
require 'active_admin/mongoid/filters/resource_extension'
2323
require 'active_admin/mongoid/controllers/resource_controller'
2424
require 'active_admin/mongoid/resource/attributes'
25-
26-
#ActiveAdmin::ResourceController.prepend(ActiveAdmin::Mongoid::ResourceController)
25+
require 'active_admin/mongoid/csv_builder'
2726

2827
module ActiveAdmin
2928
module Mongoid
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
module ActiveAdmin
2+
class CSVBuilder
3+
def build(controller, csv)
4+
@collection = controller.send :find_collection, except: :pagination
5+
columns = exec_columns controller.view_context
6+
options = ActiveAdmin.application.csv_options.merge self.options
7+
bom = options.delete :byte_order_mark
8+
column_names = options.delete(:column_names) { true }
9+
csv_options = options.except :encoding_options, :humanize_name
10+
11+
csv << bom if bom
12+
13+
if column_names
14+
csv << CSV.generate_line(columns.map{ |c| encode c.name, options }, csv_options)
15+
end
16+
17+
(1..paginated_collection.total_pages).each do |page|
18+
paginated_collection(page).each do |resource|
19+
resource = controller.send :apply_decorator, resource
20+
csv << CSV.generate_line(build_row(resource, columns, options), csv_options)
21+
end
22+
end
23+
24+
csv
25+
end
26+
end
27+
end

lib/active_admin/mongoid/filter_form_builder.rb

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,7 @@ class ActiveAdmin::Filters::FormBuilder
22

33
def filter(method, options = {})
44
if method.present? && options[:as] ||= default_input_type(method)
5-
6-
if @object.is_a?(Ransack::Search) && @object.respond_to?(:klass)
7-
template.concat input(method, options)
8-
else
9-
template.concat input(method, options)
10-
end
5+
template.concat input(method, options)
116
end
127
end
138

lib/active_admin/mongoid/inputs/filters/select_input.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
class ActiveAdmin::Inputs::Filters::SelectInput
44
def searchable_method_name
55
name = if searchable_has_many_through?
6-
"#{reflection.through_reflection.name}_#{reflection.foreign_key}"
7-
else
8-
reflection.key if reflection_searchable?
9-
end
6+
"#{reflection.through_reflection.name}_#{reflection.foreign_key}"
7+
elsif reflection_searchable?
8+
reflection.key
9+
end
1010
(name == '_id') ? 'id' : name
1111
end
1212
end

lib/active_admin/mongoid/resource/attributes.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ module Attributes
77
def foreign_methods
88
@foreign_methods ||= resource_class.reflect_on_all_associations.
99
select{ |r| r.macro == :belongs_to }.
10-
#reject{ |r| r.chain.length > 2 && !r.options[:polymorphic] }.
1110
index_by{ |r| r.foreign_key.to_sym }
1211
end
1312

spec/features/smoke_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,11 @@
313313
end
314314
end
315315

316+
it "builds csv" do
317+
visit '/admin/admin_users.csv'
318+
expect(page.status_code).to eq(200) or eq(304)
319+
end
320+
316321

317322
end
318323
end

0 commit comments

Comments
 (0)