diff --git a/lib/ext/search_controller.rb b/lib/ext/search_controller.rb index 819c0f5..97c367f 100644 --- a/lib/ext/search_controller.rb +++ b/lib/ext/search_controller.rb @@ -24,6 +24,7 @@ class SearchController def software_infos @titles[:software_infos] = _("Software Catalog") @category_filters = [] + @categories = Category.all results = filter_software_infos_list results = results.paginate(:per_page => 24, :page => params[:page]) @@ -51,17 +52,13 @@ class SearchController end def filter_software_infos_list - unfiltered_software_infos_list = SoftwareInfo.like_search(params[:query]) + filtered_communities_list = SoftwareInfo.like_search(params[:query]) - filtered_communities_list = [] - unfiltered_software_infos_list.each do |software| - filtered_communities_list << software.community - end - - if not params[:filter].blank? - params[:filter].split(",").each{|f| @category_filters << f.to_i} - filtered_communities_list.select! do |community| - !(community.category_ids & @category_filters).blank? + if not params[:categories].blank? + @category_filters = params[:categories].select {|c| c.to_i != 0 } + + filtered_communities_list.select! do |software| + !(software.community.category_ids & @category_filters).blank? end end diff --git a/lib/software_info.rb b/lib/software_info.rb index c972919..726b7ce 100644 --- a/lib/software_info.rb +++ b/lib/software_info.rb @@ -41,7 +41,8 @@ class SoftwareInfo < ActiveRecord::Base # used on find_by_contents scope :like_search, lambda{ |name| joins(:community).where( - "name ILIKE ? OR acronym ILIKE ?", "%#{name}%", "%#{name}%" + "name ILIKE ? OR acronym ILIKE ? OR finality ILIKE ?", + "%#{name}%", "%#{name}%", "%#{name}%" ) } diff --git a/views/search/_catalog_filter.html.erb b/views/search/_catalog_filter.html.erb index cf3f6e6..bd59eba 100644 --- a/views/search/_catalog_filter.html.erb +++ b/views/search/_catalog_filter.html.erb @@ -1,19 +1,29 @@ -