Commit 5954b0972f784a8d59bbe996e967349fd400328d
1 parent
00620c69
Exists in
master
and in
23 other branches
Concentrating find_by_contents on application controller
Showing
14 changed files
with
24 additions
and
56 deletions
Show diff stats
app/controllers/admin/region_validators_controller.rb
| @@ -33,7 +33,7 @@ class RegionValidatorsController < AdminController | @@ -33,7 +33,7 @@ class RegionValidatorsController < AdminController | ||
| 33 | def load_region_and_search | 33 | def load_region_and_search |
| 34 | @region = environment.regions.find(params[:id]) | 34 | @region = environment.regions.find(params[:id]) |
| 35 | if params[:search] | 35 | if params[:search] |
| 36 | - @search = @region.search_possible_validators(params[:search]) | 36 | + @search = find_by_contents(Organization, params[:search])[:results].docs.reject {|item| @region.validator_ids.include?(item.id) } |
| 37 | end | 37 | end |
| 38 | end | 38 | end |
| 39 | 39 |
app/controllers/application_controller.rb
| @@ -154,4 +154,9 @@ class ApplicationController < ActionController::Base | @@ -154,4 +154,9 @@ class ApplicationController < ActionController::Base | ||
| 154 | end | 154 | end |
| 155 | end | 155 | end |
| 156 | 156 | ||
| 157 | + def find_by_contents(klass, query, paginate_options{}, options={}) | ||
| 158 | + @plugins.first(:find_by_contents, klass, query, paginate_options, options) || | ||
| 159 | + # Failback search using like | ||
| 160 | + end | ||
| 161 | + | ||
| 157 | end | 162 | end |
app/controllers/my_profile/cms_controller.rb
| @@ -270,8 +270,7 @@ class CmsController < MyProfileController | @@ -270,8 +270,7 @@ class CmsController < MyProfileController | ||
| 270 | 270 | ||
| 271 | def search | 271 | def search |
| 272 | query = params[:q] | 272 | query = params[:q] |
| 273 | - results = profile.files.published.find_by_contents(query)[:results] | ||
| 274 | - # results = @plugins.first(:find_by_contents, profile.files.published, query)[:results] | 273 | + results = find_by_contents(profile.files.published, query)[:results] |
| 275 | render :text => article_list_to_json(results), :content_type => 'application/json' | 274 | render :text => article_list_to_json(results), :content_type => 'application/json' |
| 276 | end | 275 | end |
| 277 | 276 |
app/controllers/public/profile_search_controller.rb
| @@ -11,7 +11,7 @@ class ProfileSearchController < PublicController | @@ -11,7 +11,7 @@ class ProfileSearchController < PublicController | ||
| 11 | if params[:where] == 'environment' | 11 | if params[:where] == 'environment' |
| 12 | redirect_to :controller => 'search', :query => @q | 12 | redirect_to :controller => 'search', :query => @q |
| 13 | else | 13 | else |
| 14 | - @results = @plugins.first(:find_by_contents, profile.articles.published, @q, {:per_page => 10, :page => params[:page]})[:results] | 14 | + @results = find_by_contents(profile.articles.published, @q, {:per_page => 10, :page => params[:page]})[:results] |
| 15 | end | 15 | end |
| 16 | end | 16 | end |
| 17 | end | 17 | end |
app/controllers/public/search_controller.rb
| @@ -8,7 +8,6 @@ class SearchController < PublicController | @@ -8,7 +8,6 @@ class SearchController < PublicController | ||
| 8 | before_filter :load_category | 8 | before_filter :load_category |
| 9 | before_filter :load_search_assets | 9 | before_filter :load_search_assets |
| 10 | before_filter :load_query | 10 | before_filter :load_query |
| 11 | - before_filter :load_search_engine | ||
| 12 | 11 | ||
| 13 | # Backwards compatibility with old URLs | 12 | # Backwards compatibility with old URLs |
| 14 | def redirect_asset_param | 13 | def redirect_asset_param |
| @@ -58,7 +57,7 @@ class SearchController < PublicController | @@ -58,7 +57,7 @@ class SearchController < PublicController | ||
| 58 | end | 57 | end |
| 59 | 58 | ||
| 60 | def articles | 59 | def articles |
| 61 | - if @search_engine && !@empty_query | 60 | + if !@empty_query |
| 62 | full_text_search | 61 | full_text_search |
| 63 | else | 62 | else |
| 64 | @searches[@asset] = {} | 63 | @searches[@asset] = {} |
| @@ -71,7 +70,7 @@ class SearchController < PublicController | @@ -71,7 +70,7 @@ class SearchController < PublicController | ||
| 71 | end | 70 | end |
| 72 | 71 | ||
| 73 | def people | 72 | def people |
| 74 | - if @search_engine && !@empty_query | 73 | + if !@empty_query |
| 75 | full_text_search | 74 | full_text_search |
| 76 | else | 75 | else |
| 77 | @searches[@asset] = {} | 76 | @searches[@asset] = {} |
| @@ -80,7 +79,7 @@ class SearchController < PublicController | @@ -80,7 +79,7 @@ class SearchController < PublicController | ||
| 80 | end | 79 | end |
| 81 | 80 | ||
| 82 | def products | 81 | def products |
| 83 | - if @search_engine | 82 | + if !@empty_query |
| 84 | full_text_search | 83 | full_text_search |
| 85 | else | 84 | else |
| 86 | @searches[@asset] = {} | 85 | @searches[@asset] = {} |
| @@ -89,7 +88,7 @@ class SearchController < PublicController | @@ -89,7 +88,7 @@ class SearchController < PublicController | ||
| 89 | end | 88 | end |
| 90 | 89 | ||
| 91 | def enterprises | 90 | def enterprises |
| 92 | - if @search_engine && !@empty_query | 91 | + if !@empty_query |
| 93 | full_text_search | 92 | full_text_search |
| 94 | else | 93 | else |
| 95 | @filter_title = _('Enterprises from network') | 94 | @filter_title = _('Enterprises from network') |
| @@ -99,7 +98,7 @@ class SearchController < PublicController | @@ -99,7 +98,7 @@ class SearchController < PublicController | ||
| 99 | end | 98 | end |
| 100 | 99 | ||
| 101 | def communities | 100 | def communities |
| 102 | - if @search_engine && !@empty_query | 101 | + if !@empty_query |
| 103 | full_text_search | 102 | full_text_search |
| 104 | else | 103 | else |
| 105 | @searches[@asset] = {} | 104 | @searches[@asset] = {} |
| @@ -123,7 +122,7 @@ class SearchController < PublicController | @@ -123,7 +122,7 @@ class SearchController < PublicController | ||
| 123 | environment.events.by_day(@selected_day) | 122 | environment.events.by_day(@selected_day) |
| 124 | end | 123 | end |
| 125 | 124 | ||
| 126 | - if @search_engine && !@empty_query | 125 | + if !@empty_query |
| 127 | full_text_search | 126 | full_text_search |
| 128 | else | 127 | else |
| 129 | @searches[@asset] = {} | 128 | @searches[@asset] = {} |
| @@ -192,10 +191,6 @@ class SearchController < PublicController | @@ -192,10 +191,6 @@ class SearchController < PublicController | ||
| 192 | end | 191 | end |
| 193 | end | 192 | end |
| 194 | 193 | ||
| 195 | - def load_search_engine | ||
| 196 | - @search_engine = @plugins.first_plugin(:search_engine?) | ||
| 197 | - end | ||
| 198 | - | ||
| 199 | FILTERS = %w( | 194 | FILTERS = %w( |
| 200 | more_recent | 195 | more_recent |
| 201 | more_active | 196 | more_active |
| @@ -261,7 +256,7 @@ class SearchController < PublicController | @@ -261,7 +256,7 @@ class SearchController < PublicController | ||
| 261 | end | 256 | end |
| 262 | 257 | ||
| 263 | def full_text_search | 258 | def full_text_search |
| 264 | - @searches[@asset] = @plugins.first(:find_by_contents, asset_class(@asset), @query, paginate_options(params[:page]), {:category => @category}) | 259 | + @searches[@asset] = find_by_contents(asset_class(@asset), @query, paginate_options(params[:page]), {:category => @category}) |
| 265 | end | 260 | end |
| 266 | 261 | ||
| 267 | private | 262 | private |
app/models/region.rb
| @@ -4,14 +4,6 @@ class Region < Category | @@ -4,14 +4,6 @@ class Region < Category | ||
| 4 | 4 | ||
| 5 | require_dependency 'enterprise' # enterprises can also be validators | 5 | require_dependency 'enterprise' # enterprises can also be validators |
| 6 | 6 | ||
| 7 | - include Noosfero::Plugin::HotSpot | ||
| 8 | - | ||
| 9 | - # searches for organizations that could become validators for this region. | ||
| 10 | - # <tt>search</tt> is passed as is to find_by_contents on Organization. | ||
| 11 | - def search_possible_validators(search) | ||
| 12 | - plugins.find_by_contents(Organization, search)[:results].docs.reject {|item| self.validator_ids.include?(item.id) } | ||
| 13 | - end | ||
| 14 | - | ||
| 15 | def has_validator? | 7 | def has_validator? |
| 16 | validators.count > 0 | 8 | validators.count > 0 |
| 17 | end | 9 | end |
app/views/layouts/application-ng.rhtml
| @@ -69,13 +69,11 @@ | @@ -69,13 +69,11 @@ | ||
| 69 | <% end %> | 69 | <% end %> |
| 70 | 70 | ||
| 71 | </span> | 71 | </span> |
| 72 | - <% if @plugins.first(:search_engine?) %> | ||
| 73 | - <form action="/search" class="search_form" method="get" class="clean"> | ||
| 74 | - <input name="query" size="15" title="<%=_('Search...')%>" onfocus="this.form.className='focused';" onblur="this.form.className=''" /> | ||
| 75 | - <div><%=_('Press <strong>Enter</strong> to send the search query.')%></div> | ||
| 76 | - <%= javascript_tag 'jQuery("#user form input").hint();' %> | ||
| 77 | - </form> | ||
| 78 | - <% end %> | 72 | + <form action="/search" class="search_form" method="get" class="clean"> |
| 73 | + <input name="query" size="15" title="<%=_('Search...')%>" onfocus="this.form.className='focused';" onblur="this.form.className=''" /> | ||
| 74 | + <div><%=_('Press <strong>Enter</strong> to send the search query.')%></div> | ||
| 75 | + <%= javascript_tag 'jQuery("#user form input").hint();' %> | ||
| 76 | + </form> | ||
| 79 | </div><!-- end id="user" --> | 77 | </div><!-- end id="user" --> |
| 80 | 78 | ||
| 81 | <h1 id="site-title"> | 79 | <h1 id="site-title"> |
app/views/search/_profile.rhtml
| 1 | <li class="search-profile-item"> | 1 | <li class="search-profile-item"> |
| 2 | -<% if @empty_query || multiple_search? || !profile.enterprise? || !@search_engine %> | 2 | +<% if @empty_query || multiple_search? || !profile.enterprise? %> |
| 3 | <%= profile_image_link profile, :portrait, 'div', | 3 | <%= profile_image_link profile, :portrait, 'div', |
| 4 | @filter == 'more_recent' ? profile.send(@filter + '_label') + show_date(profile.created_at) : profile.send(@filter + '_label') %> | 4 | @filter == 'more_recent' ? profile.send(@filter + '_label') + show_date(profile.created_at) : profile.send(@filter + '_label') %> |
| 5 | <% else %> | 5 | <% else %> |
app/views/search/category_index.rhtml
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | <% end %> | 5 | <% end %> |
| 6 | 6 | ||
| 7 | <%= search_page_title(_('Search Results'), @category) %> | 7 | <%= search_page_title(_('Search Results'), @category) %> |
| 8 | - <%= render :partial => 'search_form', :locals => { :hint => '' } if @search_engine %> | 8 | + <%= render :partial => 'search_form', :locals => { :hint => '' } %> |
| 9 | <%= category_context(@category, params) %> | 9 | <%= category_context(@category, params) %> |
| 10 | <%= display_results %> | 10 | <%= display_results %> |
| 11 | 11 |
app/views/search/index.rhtml
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | <% end %> | 5 | <% end %> |
| 6 | 6 | ||
| 7 | <%= search_page_title(_('Search Results'), @category) %> | 7 | <%= search_page_title(_('Search Results'), @category) %> |
| 8 | - <%= render :partial => 'search_form', :locals => { :hint => '' } if @search_engine %> | 8 | + <%= render :partial => 'search_form', :locals => { :hint => '' } %> |
| 9 | <%= category_context(@category, params) %> | 9 | <%= category_context(@category, params) %> |
| 10 | <%= display_results(@asset) %> | 10 | <%= display_results(@asset) %> |
| 11 | 11 |
lib/noosfero/plugin.rb
| @@ -351,18 +351,11 @@ class Noosfero::Plugin | @@ -351,18 +351,11 @@ class Noosfero::Plugin | ||
| 351 | nil | 351 | nil |
| 352 | end | 352 | end |
| 353 | 353 | ||
| 354 | - # -> Specifies plugin that works as a search engine | ||
| 355 | - # returns = true/false | ||
| 356 | - def search_engine? | ||
| 357 | - false | ||
| 358 | - end | ||
| 359 | - | ||
| 360 | # -> Finds objects by their contents | 354 | # -> Finds objects by their contents |
| 361 | # returns = {:results => [a, b, c, ...], ...} | 355 | # returns = {:results => [a, b, c, ...], ...} |
| 362 | # P.S.: The plugin might add other informations on the return hash for its | 356 | # P.S.: The plugin might add other informations on the return hash for its |
| 363 | # own use in specific views | 357 | # own use in specific views |
| 364 | def find_by_contents(klass, query, paginate_options={}, options={}) | 358 | def find_by_contents(klass, query, paginate_options={}, options={}) |
| 365 | - {:results => []} | ||
| 366 | end | 359 | end |
| 367 | 360 | ||
| 368 | def method_missing(method, *args, &block) | 361 | def method_missing(method, *args, &block) |
lib/noosfero/plugin/manager.rb
| @@ -39,7 +39,7 @@ class Noosfero::Plugin::Manager | @@ -39,7 +39,7 @@ class Noosfero::Plugin::Manager | ||
| 39 | result = plugin.send(event, *args) | 39 | result = plugin.send(event, *args) |
| 40 | break if result.present? | 40 | break if result.present? |
| 41 | end | 41 | end |
| 42 | - result || Noosfero::Plugin.new.send(event, *args) | 42 | + result |
| 43 | end | 43 | end |
| 44 | 44 | ||
| 45 | def first_plugin(event, *args) | 45 | def first_plugin(event, *args) |
plugins/solr/lib/solr_plugin.rb
| @@ -12,10 +12,6 @@ class SolrPlugin < Noosfero::Plugin | @@ -12,10 +12,6 @@ class SolrPlugin < Noosfero::Plugin | ||
| 12 | _("Uses Solr as search engine.") | 12 | _("Uses Solr as search engine.") |
| 13 | end | 13 | end |
| 14 | 14 | ||
| 15 | - def search_engine? | ||
| 16 | - true | ||
| 17 | - end | ||
| 18 | - | ||
| 19 | def find_by_contents(klass, query, paginate_options={}, options={}) | 15 | def find_by_contents(klass, query, paginate_options={}, options={}) |
| 20 | category = options.delete(:category) | 16 | category = options.delete(:category) |
| 21 | solr_options = solr_options(class_asset(klass), category) | 17 | solr_options = solr_options(class_asset(klass), category) |
test/unit/plugin_manager_test.rb
| @@ -140,15 +140,5 @@ class PluginManagerTest < ActiveSupport::TestCase | @@ -140,15 +140,5 @@ class PluginManagerTest < ActiveSupport::TestCase | ||
| 140 | assert_equal Plugin2, manager.first_plugin(:random_event) | 140 | assert_equal Plugin2, manager.first_plugin(:random_event) |
| 141 | end | 141 | end |
| 142 | 142 | ||
| 143 | - should 'use default value defined on the base plugin class when no plugin enabled for the first method' do | ||
| 144 | - class Noosfero::Plugin | ||
| 145 | - def random_event | ||
| 146 | - 1 | ||
| 147 | - end | ||
| 148 | - end | ||
| 149 | - | ||
| 150 | - assert_equal 1, manager.first(:random_event) | ||
| 151 | - end | ||
| 152 | - | ||
| 153 | end | 143 | end |
| 154 | 144 |