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