Commit a6385b0e58ee25b414986dd3b22a4a8cc49fc1d5
Exists in
master
and in
5 other branches
Merge branch 'fix_communities_search' into 'master'
Fix communities search See merge request !4
Showing
6 changed files
with
24 additions
and
21 deletions
Show diff stats
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 'search_controller' | @@ -3,12 +3,12 @@ require_dependency 'search_controller' | ||
| 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| |