From f4094fd29aef5df95492efd861a233411bc9515a Mon Sep 17 00:00:00 2001 From: Arthur Del Esposte Date: Tue, 3 Nov 2015 17:49:20 +0000 Subject: [PATCH] Remove wrong methods from search_controller extansion --- src/noosfero-spb/software_communities/lib/ext/search_controller.rb | 57 +-------------------------------------------------------- src/noosfero-spb/software_communities/lib/software_communities_plugin.rb | 54 ++++++++++++++++++++++++++++++++---------------------- src/noosfero-spb/software_communities/models/software_communities_plugin/softwares_block.rb | 2 +- 3 files changed, 34 insertions(+), 79 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 8d02980..f1a5e7d 100644 --- a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb +++ b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb @@ -2,66 +2,11 @@ require_dependency 'search_controller' class SearchController - # def communities - # delete_communities = [] - # valid_communities_string = Community.get_valid_communities_string - # Community.all.each{|community| delete_communities << community.id unless eval(valid_communities_string)} - - # @scope = visible_profiles(Community) - # @scope = @scope.where(["id NOT IN (?)", delete_communities]) unless delete_communities.empty? - - # full_text_search - # end - - # def software_infos - # prepare_software_search_page - # results = filter_software_infos_list - # @software_count = results.count - # results = results.paginate(:per_page => @per_page, :page => params[:page]) - # @searches[@asset] = {:results => results} - # @search = results - - # render :layout=>false if request.xhr? - # end - protected - def filter_communities_list - unfiltered_list = visible_profiles(Community) - - unless params[:query].nil? - unfiltered_list = unfiltered_list.select do |com| - com.name.downcase =~ /#{params[:query].downcase}/ - end - end - - communities_list = [] - unfiltered_list.each do |profile| - if profile.class == Community && !profile.is_template? && yield(profile) - communities_list << profile - end - end - - communities_list - end - - # def filter_software_infos_list - # filtered_software_list = get_community_ids_from_filtered_software - # filtered_community_list = get_communities_list(filtered_software_list) - # sort_communities_list filtered_community_list - # end - - def get_filter_category_ids - category_ids = [] - unless params[:selected_categories_id].blank? - category_ids = params[:selected_categories_id] - end - category_ids.map(&:to_i) - end - # def sort_communities_list communities_list # communities_list.sort! {|a, b| a.name.downcase <=> b.name.downcase} - + # # if params[:sort] && params[:sort] == "desc" # communities_list.reverse! # elsif params[:sort] && params[:sort] == "relevance" diff --git a/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb b/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb index d788f13..a58412f 100644 --- a/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb +++ b/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb @@ -141,14 +141,6 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin @scope = visible_profiles(Community) @asset = class_name_underscored @assets = [@asset] - @titles[class_name_underscored] = _("Result Search") - @categories = Category.software_categories.sort{|a, b| a.name <=> b.name} - @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 params[:limit] = 24 end @@ -161,7 +153,6 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin scope = Community.where(:id => community_ids) end - scope.order(:name) # scope = scope.like_search(query, options) unless query.blank? # scope = scope.send(options[:filter]) unless options[:filter].blank? {:results => scope.paginate(paginate_options)} @@ -169,19 +160,44 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin protected - def get_community_ids_from_filtered_software(query) - filtered_software_list = SoftwareCommunitiesPlugin::SoftwareInfo.search_by_query(query) + def get_community_ids_from_filtered_software query + software_list = SoftwareCommunitiesPlugin::SoftwareInfo.search_by_query(query) + software_list = filter_only_specific_softwares(software_list) + + software_list = filter_softwares_by_categories(software_list) + + community_ids = [] + + software_list.each do |software| + community_ids << software.community_id + end + + community_ids + end + + def filter_only_specific_softwares software_list + # TODO: refatorar isso para um scope if context.params[:only_softwares] context.params[:only_softwares].collect!{ |software_name| software_name.to_slug } - filtered_software_list = SoftwareCommunitiesPlugin::SoftwareInfo.all.select{ |s| context.params[:only_softwares].include?(s.identifier) } - @public_software_selected = false + software_list = SoftwareCommunitiesPlugin::SoftwareInfo.all.select{ |s| context.params[:only_softwares].include?(s.identifier) } + context.public_software_selected = false end - category_ids = get_filter_category_ids + software_list + end + + def filter_softwares_by_categories software_list + # TODO: refatorar isso para um scope + category_ids = [] + unless context.params[:selected_categories_id].blank? + category_ids = context.params[:selected_categories_id] + end + + category_ids = category_ids.map(&:to_i) unless category_ids.empty? - filtered_software_list.select! do |software| + software_list.select! do |software| if software.nil? || software.community.nil? false else @@ -191,13 +207,7 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin end end - community_ids = [] - - filtered_software_list.each do |software| - community_ids << software.community_id - end - - community_ids + software_list end def sort_communities_list communities_list diff --git a/src/noosfero-spb/software_communities/models/software_communities_plugin/softwares_block.rb b/src/noosfero-spb/software_communities/models/software_communities_plugin/softwares_block.rb index 0c0a910..fbb4792 100644 --- a/src/noosfero-spb/software_communities/models/software_communities_plugin/softwares_block.rb +++ b/src/noosfero-spb/software_communities/models/software_communities_plugin/softwares_block.rb @@ -35,7 +35,7 @@ class SoftwareCommunitiesPlugin::SoftwaresBlock < CommunitiesBlock when Environment lambda do |context| link_to s_('softwares|View all'), :controller => 'search', - :action => 'software_infos' + :action => 'softwares' end else '' -- libgit2 0.21.2