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