From 4a0ed4755e85562be9ef79604c73e3c6c2fb11ac Mon Sep 17 00:00:00 2001 From: Luciano Date: Mon, 8 Dec 2014 15:01:39 -0200 Subject: [PATCH] Search by acronym in software_infos search --- lib/ext/search_controller.rb | 22 +++++++++++++++------- lib/software_info.rb | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lib/ext/search_controller.rb b/lib/ext/search_controller.rb index dc6cd75..caf924a 100644 --- a/lib/ext/search_controller.rb +++ b/lib/ext/search_controller.rb @@ -23,13 +23,7 @@ class SearchController @titles[:software_infos] = _("Software Catalog") @category_filters = [] - if params[:filter].blank? - results = filter_communities_list{|community| community.software?} - else - params[:filter].split(",").each{|f| @category_filters << f.to_i} - results = filter_communities_list{|community| community.software? && !(community.category_ids & @category_filters).blank?} - end - + results = filter_software_infos_list results = results.paginate(:per_page => 24, :page => params[:page]) @searches[@asset] = {:results => results} @search = results @@ -50,4 +44,18 @@ class SearchController end communities_list end + + def filter_software_infos_list + unfiltered_software_infos_list = SoftwareInfo.like_search(params[:query]) + + filtered_communities_list = [] + unfiltered_software_infos_list.each{|software| filtered_communities_list << software.community} + + if not params[:filter].blank? + params[:filter].split(",").each{|f| @category_filters << f.to_i} + filtered_communities_list.select!{|community| !(community.category_ids & @category_filters).blank?} + end + + filtered_communities_list + end end diff --git a/lib/software_info.rb b/lib/software_info.rb index 069a185..27e3601 100644 --- a/lib/software_info.rb +++ b/lib/software_info.rb @@ -31,7 +31,7 @@ class SoftwareInfo < ActiveRecord::Base # used on find_by_contents scope :like_search, lambda{ |name| - joins(:community).where("name ilike ?", "%#{name}%") + joins(:community).where("name ILIKE ? OR acronym ILIKE ?", "%#{name}%", "%#{name}%") } scope :search, lambda { |name="", database_description_id = "", -- libgit2 0.21.2