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 | 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) | ... | ... |