diff --git a/lib/ext/community.rb b/lib/ext/community.rb index c53fd84..a657697 100644 --- a/lib/ext/community.rb +++ b/lib/ext/community.rb @@ -3,8 +3,20 @@ require_dependency 'community' class Community has_one :institution, :dependent=>:destroy - def institution? return !institution.nil? end + + def remove_of_community_search_institution? + return institution? + 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 end diff --git a/lib/ext/search_controller.rb b/lib/ext/search_controller.rb index 1ca78b0..63cd989 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.institution? - 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 institutions -- libgit2 0.21.2