diff --git a/lib/ext/community.rb b/lib/ext/community.rb index 2d61b9a..b8cdc7b 100644 --- a/lib/ext/community.rb +++ b/lib/ext/community.rb @@ -26,6 +26,15 @@ class Community community end + def self.get_valid_communities_string + remove_of_communities_methods = Community.instance_methods.select{|m| m =~ /remove_of_community_search/} + valid_communities_string = "" + remove_of_communities_methods.each do |method| + valid_communities_string += "!community.send('#{method}') && " + end + valid_communities_string[0..-5] + end + def software? return !software_info.nil? end @@ -39,4 +48,8 @@ class Community self.visible = true self.save! end + + def remove_of_community_search_software? + return software? + end end diff --git a/lib/ext/search_controller.rb b/lib/ext/search_controller.rb index 79a371a..c8bcc39 100644 --- a/lib/ext/search_controller.rb +++ b/lib/ext/search_controller.rb @@ -3,12 +3,12 @@ require_dependency 'search_controller' class SearchController def communities - results = filter_communities_list do |community| - !community.software? - end - results = results.paginate(:per_page => 24, :page => params[:page]) - @searches[@asset] = {:results => results} - @search = results + valid_communities_string = Community.get_valid_communities_string + + @scope = visible_profiles(Community) + @scope.each{|community| @scope.delete(community) unless eval(valid_communities_string)} + + full_text_search end def software_infos @@ -162,5 +162,4 @@ class SearchController end end end - end -- libgit2 0.21.2