search_controller.rb
1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
require_dependency 'search_controller'
class SearchController
def communities
results = filter_communities_list{|community| !community.software? and !community.institution?}
results = results.paginate(:per_page => 24, :page => params[:page])
@searches[@asset] = {:results => results}
@search = results
end
def software_infos
@titles[:software_infos] = "Software Infos"
if params[:filter].blank?
results = filter_communities_list{|community| community.software?}
else
integer_filters = []
params[:filter].split(",").each{|f| integer_filters << f.to_i}
results = filter_communities_list{|community| community.software? && !(community.category_ids & integer_filters).blank?}
end
results = results.paginate(:per_page => 24, :page => params[:page])
@searches[@asset] = {:results => results}
@search = results
end
def filter_communities_list
unfiltered_list = visible_profiles(Community)
unless params[:query].nil?
unfiltered_list = unfiltered_list.select do |com|
com.name.downcase =~ /#{params[:query].downcase}/
end
end
communities_list = []
unfiltered_list.each do |profile|
if profile.class == Community and yield(profile)
communities_list << profile
end
end
communities_list
end
end