From 4d1a708faf3cfa06ff23b1f2fe0d2cb3b99983b2 Mon Sep 17 00:00:00 2001 From: Luciano Prestes Cavalcanti Date: Tue, 8 Dec 2015 11:40:57 +0100 Subject: [PATCH] Refactor software_info search_controller --- src/noosfero-spb/software_communities/lib/ext/search_controller.rb | 52 ++++++++++++---------------------------------------- 1 file changed, 12 insertions(+), 40 deletions(-) diff --git a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb index 5c01f42..ffe3619 100644 --- a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb +++ b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb @@ -14,8 +14,10 @@ class SearchController end def software_infos - prepare_software_search_page - results = filter_software_infos_list + prepare_software_search_page(:software_infos) + results = filter_software_infos_list do |software| + (!@public_software_selected || software.public_software?) && (!software.sisp) + end @software_count = results.count results = results.paginate(:per_page => @per_page, :page => params[:page]) @searches[@asset] = {:results => results} @@ -25,8 +27,8 @@ class SearchController end def sisp - prepare_sisp_page - results = filter_sisp_list + prepare_software_search_page(:sisp) + results = filter_software_infos_list{|software| software.sisp } @software_count = results.count results = results.paginate(:per_page => @per_page, :page => params[:page]) @searches[@asset] = {:results => results} @@ -58,13 +60,7 @@ class SearchController def filter_software_infos_list filtered_software_list = get_filtered_software_list - filtered_community_list = get_communities_list(filtered_software_list) - sort_communities_list filtered_community_list - end - - def filter_sisp_list - filtered_software_list = get_filtered_software_list - filtered_community_list = get_communities_sisp_list(filtered_software_list) + filtered_community_list = get_communities_list(filtered_software_list){|software| yield(software)} sort_communities_list filtered_community_list end @@ -108,22 +104,13 @@ class SearchController def get_communities_list software_list filtered_community_list = [] software_list.each do |software| - if (!@public_software_selected || software.public_software?) && (!software.sisp) + if yield(software) filtered_community_list << software.community unless software.community.nil? end end filtered_community_list end - def get_communities_sisp_list software_list - filtered_community_list = [] - software_list.each do |software| - if software.sisp - filtered_community_list << software.community unless software.community.nil? - end - end - filtered_community_list - end def sort_communities_list communities_list communities_list.sort! {|a, b| a.name.downcase <=> b.name.downcase} @@ -137,30 +124,15 @@ class SearchController communities_list end - def prepare_software_search_page - prepare_software_infos_params + def prepare_software_search_page title + prepare_software_infos_params(title) prepare_software_infos_message prepare_software_infos_category_groups prepare_software_infos_category_enable end - def prepare_sisp_page - prepare_sisp_params - prepare_software_infos_message - prepare_software_infos_category_groups - prepare_software_infos_category_enable - end - def prepare_software_infos_params - @titles[:software_infos] = _("Result Search") - @selected_categories_id = params[:selected_categories_id] - @selected_categories_id ||= [] - @selected_categories_id = @selected_categories_id.map(&:to_i) - @all_selected = params[:software_type] == "all" - @public_software_selected = !@all_selected - @per_page = prepare_per_page - end - def prepare_sisp_params - @titles[:sisp] = _("Result Search") + def prepare_software_infos_params title + @titles[title.to_sym] = _("Result Search") @selected_categories_id = params[:selected_categories_id] @selected_categories_id ||= [] @selected_categories_id = @selected_categories_id.map(&:to_i) -- libgit2 0.21.2