Commit 4d1a708faf3cfa06ff23b1f2fe0d2cb3b99983b2

Authored by Luciano Prestes
1 parent 73a69ec7

Refactor software_info search_controller

Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
Signed-off-by: Marcos Ronaldo <marcos.rpj2@gmail.com>
src/noosfero-spb/software_communities/lib/ext/search_controller.rb
@@ -14,8 +14,10 @@ class SearchController @@ -14,8 +14,10 @@ class SearchController
14 end 14 end
15 15
16 def software_infos 16 def software_infos
17 - prepare_software_search_page  
18 - results = filter_software_infos_list 17 + prepare_software_search_page(:software_infos)
  18 + results = filter_software_infos_list do |software|
  19 + (!@public_software_selected || software.public_software?) && (!software.sisp)
  20 + end
19 @software_count = results.count 21 @software_count = results.count
20 results = results.paginate(:per_page => @per_page, :page => params[:page]) 22 results = results.paginate(:per_page => @per_page, :page => params[:page])
21 @searches[@asset] = {:results => results} 23 @searches[@asset] = {:results => results}
@@ -25,8 +27,8 @@ class SearchController @@ -25,8 +27,8 @@ class SearchController
25 end 27 end
26 28
27 def sisp 29 def sisp
28 - prepare_sisp_page  
29 - results = filter_sisp_list 30 + prepare_software_search_page(:sisp)
  31 + results = filter_software_infos_list{|software| software.sisp }
30 @software_count = results.count 32 @software_count = results.count
31 results = results.paginate(:per_page => @per_page, :page => params[:page]) 33 results = results.paginate(:per_page => @per_page, :page => params[:page])
32 @searches[@asset] = {:results => results} 34 @searches[@asset] = {:results => results}
@@ -58,13 +60,7 @@ class SearchController @@ -58,13 +60,7 @@ class SearchController
58 60
59 def filter_software_infos_list 61 def filter_software_infos_list
60 filtered_software_list = get_filtered_software_list 62 filtered_software_list = get_filtered_software_list
61 - filtered_community_list = get_communities_list(filtered_software_list)  
62 - sort_communities_list filtered_community_list  
63 - end  
64 -  
65 - def filter_sisp_list  
66 - filtered_software_list = get_filtered_software_list  
67 - filtered_community_list = get_communities_sisp_list(filtered_software_list) 63 + filtered_community_list = get_communities_list(filtered_software_list){|software| yield(software)}
68 sort_communities_list filtered_community_list 64 sort_communities_list filtered_community_list
69 end 65 end
70 66
@@ -108,22 +104,13 @@ class SearchController @@ -108,22 +104,13 @@ class SearchController
108 def get_communities_list software_list 104 def get_communities_list software_list
109 filtered_community_list = [] 105 filtered_community_list = []
110 software_list.each do |software| 106 software_list.each do |software|
111 - if (!@public_software_selected || software.public_software?) && (!software.sisp) 107 + if yield(software)
112 filtered_community_list << software.community unless software.community.nil? 108 filtered_community_list << software.community unless software.community.nil?
113 end 109 end
114 end 110 end
115 filtered_community_list 111 filtered_community_list
116 end 112 end
117 113
118 - def get_communities_sisp_list software_list  
119 - filtered_community_list = []  
120 - software_list.each do |software|  
121 - if software.sisp  
122 - filtered_community_list << software.community unless software.community.nil?  
123 - end  
124 - end  
125 - filtered_community_list  
126 - end  
127 def sort_communities_list communities_list 114 def sort_communities_list communities_list
128 communities_list.sort! {|a, b| a.name.downcase <=> b.name.downcase} 115 communities_list.sort! {|a, b| a.name.downcase <=> b.name.downcase}
129 116
@@ -137,30 +124,15 @@ class SearchController @@ -137,30 +124,15 @@ class SearchController
137 communities_list 124 communities_list
138 end 125 end
139 126
140 - def prepare_software_search_page  
141 - prepare_software_infos_params 127 + def prepare_software_search_page title
  128 + prepare_software_infos_params(title)
142 prepare_software_infos_message 129 prepare_software_infos_message
143 prepare_software_infos_category_groups 130 prepare_software_infos_category_groups
144 prepare_software_infos_category_enable 131 prepare_software_infos_category_enable
145 end 132 end
146 - def prepare_sisp_page  
147 - prepare_sisp_params  
148 - prepare_software_infos_message  
149 - prepare_software_infos_category_groups  
150 - prepare_software_infos_category_enable  
151 - end  
152 - def prepare_software_infos_params  
153 - @titles[:software_infos] = _("Result Search")  
154 - @selected_categories_id = params[:selected_categories_id]  
155 - @selected_categories_id ||= []  
156 - @selected_categories_id = @selected_categories_id.map(&:to_i)  
157 - @all_selected = params[:software_type] == "all"  
158 - @public_software_selected = !@all_selected  
159 - @per_page = prepare_per_page  
160 - end  
161 133
162 - def prepare_sisp_params  
163 - @titles[:sisp] = _("Result Search") 134 + def prepare_software_infos_params title
  135 + @titles[title.to_sym] = _("Result Search")
164 @selected_categories_id = params[:selected_categories_id] 136 @selected_categories_id = params[:selected_categories_id]
165 @selected_categories_id ||= [] 137 @selected_categories_id ||= []
166 @selected_categories_id = @selected_categories_id.map(&:to_i) 138 @selected_categories_id = @selected_categories_id.map(&:to_i)