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 14 end
15 15  
16 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 21 @software_count = results.count
20 22 results = results.paginate(:per_page => @per_page, :page => params[:page])
21 23 @searches[@asset] = {:results => results}
... ... @@ -25,8 +27,8 @@ class SearchController
25 27 end
26 28  
27 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 32 @software_count = results.count
31 33 results = results.paginate(:per_page => @per_page, :page => params[:page])
32 34 @searches[@asset] = {:results => results}
... ... @@ -58,13 +60,7 @@ class SearchController
58 60  
59 61 def filter_software_infos_list
60 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 64 sort_communities_list filtered_community_list
69 65 end
70 66  
... ... @@ -108,22 +104,13 @@ class SearchController
108 104 def get_communities_list software_list
109 105 filtered_community_list = []
110 106 software_list.each do |software|
111   - if (!@public_software_selected || software.public_software?) && (!software.sisp)
  107 + if yield(software)
112 108 filtered_community_list << software.community unless software.community.nil?
113 109 end
114 110 end
115 111 filtered_community_list
116 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 114 def sort_communities_list communities_list
128 115 communities_list.sort! {|a, b| a.name.downcase <=> b.name.downcase}
129 116  
... ... @@ -137,30 +124,15 @@ class SearchController
137 124 communities_list
138 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 129 prepare_software_infos_message
143 130 prepare_software_infos_category_groups
144 131 prepare_software_infos_category_enable
145 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 136 @selected_categories_id = params[:selected_categories_id]
165 137 @selected_categories_id ||= []
166 138 @selected_categories_id = @selected_categories_id.map(&:to_i)
... ...