Commit a6385b0e58ee25b414986dd3b22a4a8cc49fc1d5

Authored by Thiago Ribeiro
2 parents 2fa38979 1c475260

Merge branch 'fix_communities_search' into 'master'

Fix communities search

See merge request !4
lib/ext/communities_block.rb
@@ -4,16 +4,9 @@ class CommunitiesBlock @@ -4,16 +4,9 @@ class CommunitiesBlock
4 4
5 def profile_list 5 def profile_list
6 result = get_visible_profiles 6 result = get_visible_profiles
  7 + valid_communities_string = Community.get_valid_communities_string
7 8
8 - list_without_software = []  
9 -  
10 - result.each do |profile|  
11 - if profile.class == Community && !profile.software?  
12 - list_without_software << profile  
13 - end  
14 - end  
15 -  
16 - result = list_without_software 9 + result.each{|community| @scope.delete(community) unless eval(valid_communities_string)}
17 10
18 result.slice(0..get_limit-1) 11 result.slice(0..get_limit-1)
19 end 12 end
@@ -45,5 +38,4 @@ class CommunitiesBlock @@ -45,5 +38,4 @@ class CommunitiesBlock
45 ).sort_by {rand} 38 ).sort_by {rand}
46 end 39 end
47 end 40 end
48 -  
49 end 41 end
lib/ext/community.rb
@@ -26,6 +26,15 @@ class Community @@ -26,6 +26,15 @@ class Community
26 community 26 community
27 end 27 end
28 28
  29 + def self.get_valid_communities_string
  30 + remove_of_communities_methods = Community.instance_methods.select{|m| m =~ /remove_of_community_search/}
  31 + valid_communities_string = ""
  32 + remove_of_communities_methods.each do |method|
  33 + valid_communities_string += "!community.send('#{method}') && "
  34 + end
  35 + valid_communities_string[0..-5]
  36 + end
  37 +
29 def software? 38 def software?
30 return !software_info.nil? 39 return !software_info.nil?
31 end 40 end
@@ -39,4 +48,8 @@ class Community @@ -39,4 +48,8 @@ class Community
39 self.visible = true 48 self.visible = true
40 self.save! 49 self.save!
41 end 50 end
  51 +
  52 + def remove_of_community_search_software?
  53 + return software?
  54 + end
42 end 55 end
lib/ext/search_controller.rb
@@ -3,12 +3,12 @@ require_dependency &#39;search_controller&#39; @@ -3,12 +3,12 @@ require_dependency &#39;search_controller&#39;
3 class SearchController 3 class SearchController
4 4
5 def communities 5 def communities
6 - results = filter_communities_list do |community|  
7 - !community.software?  
8 - end  
9 - results = results.paginate(:per_page => 24, :page => params[:page])  
10 - @searches[@asset] = {:results => results}  
11 - @search = results 6 + valid_communities_string = Community.get_valid_communities_string
  7 +
  8 + @scope = visible_profiles(Community)
  9 + @scope.each{|community| @scope.delete(community) unless eval(valid_communities_string)}
  10 +
  11 + full_text_search
12 end 12 end
13 13
14 def software_infos 14 def software_infos
@@ -162,5 +162,4 @@ class SearchController @@ -162,5 +162,4 @@ class SearchController
162 end 162 end
163 end 163 end
164 end 164 end
165 -  
166 end 165 end
lib/tasks/create_categories.rake
@@ -2,7 +2,7 @@ namespace :software do @@ -2,7 +2,7 @@ namespace :software do
2 desc "Create software categories" 2 desc "Create software categories"
3 task :create_categories => :environment do 3 task :create_categories => :environment do
4 Environment.all.each do |env| 4 Environment.all.each do |env|
5 - if env.plugin_enabled?("MpogSoftware") or env.plugin_enabled?("SoftwareCommunities") 5 + if env.plugin_enabled?("SoftwareCommunitiesPlugin")
6 print 'Creating categories: ' 6 print 'Creating categories: '
7 software = Category.create(:name => _("Software"), :environment => env) 7 software = Category.create(:name => _("Software"), :environment => env)
8 Category::SOFTWARE_CATEGORIES.each do |category_name| 8 Category::SOFTWARE_CATEGORIES.each do |category_name|
lib/tasks/create_licenses.rake
@@ -3,7 +3,7 @@ namespace :software do @@ -3,7 +3,7 @@ namespace :software do
3 3
4 task :create_licenses => :environment do 4 task :create_licenses => :environment do
5 Environment.all.each do |env| 5 Environment.all.each do |env|
6 - if env.plugin_enabled?("MpogSoftware") or env.plugin_enabled?("SoftwareCommunities") 6 + if env.plugin_enabled?("SoftwareCommunitiesPlugin")
7 list_file = File.open "plugins/software_communities/public/static/licences.txt", "r" 7 list_file = File.open "plugins/software_communities/public/static/licences.txt", "r"
8 8
9 version_or_link = 'version' 9 version_or_link = 'version'
lib/tasks/create_sample_softwares.rake
@@ -4,8 +4,7 @@ namespace :software do @@ -4,8 +4,7 @@ namespace :software do
4 desc "Create sample softwares" 4 desc "Create sample softwares"
5 task :create_sample_softwares => :environment do 5 task :create_sample_softwares => :environment do
6 Environment.all.each do |env| 6 Environment.all.each do |env|
7 - if env.plugin_enabled?("SoftwareCommunities") or env.plugin_enabled?("SoftwareCommunitiesPlugin")  
8 - 7 + if env.plugin_enabled?("SoftwareCommunitiesPlugin")
9 print "Creating softwares: " 8 print "Creating softwares: "
10 9
11 NUMBER_OF_SOFTWARES.times do |i| 10 NUMBER_OF_SOFTWARES.times do |i|