Commit 4d1a708faf3cfa06ff23b1f2fe0d2cb3b99983b2
1 parent
73a69ec7
Exists in
sisp_simple_version
Refactor software_info search_controller
Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com> Signed-off-by: Marcos Ronaldo <marcos.rpj2@gmail.com>
Showing
1 changed file
with
12 additions
and
40 deletions
Show diff stats
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) |