Commit a0cb5ec6ce07f277f64a1f8c3337bf539e89e610
1 parent
da233db6
Exists in
master
and in
5 other branches
Add before_filter instead of hotstop and fix error
-Fix filter without results returning full_text_search Signed-off-by: Gustavo Jaruga <darksshades@gmail.com> Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com>
Showing
1 changed file
with
32 additions
and
10 deletions
Show diff stats
lib/mpog_software_plugin.rb
| @@ -130,6 +130,37 @@ class MpogSoftwarePlugin < Noosfero::Plugin | @@ -130,6 +130,37 @@ class MpogSoftwarePlugin < Noosfero::Plugin | ||
| 130 | }] | 130 | }] |
| 131 | end | 131 | end |
| 132 | 132 | ||
| 133 | + def search_controller_filters | ||
| 134 | + block = proc do | ||
| 135 | + results = [] | ||
| 136 | + if params[:action] == "communities" and params[:type] == "Software" | ||
| 137 | + softwares = SoftwareInfo.search(params[:name], params[:database_description][:id], | ||
| 138 | + params[:programming_language][:id], params[:operating_system][:id], | ||
| 139 | + params[:license_info][:id], params[:e_ping], params[:e_mag], params[:internacionalizable], | ||
| 140 | + params[:icp_brasil], params[:e_arq], params[:controlled_vocabulary]) | ||
| 141 | + communities = [] | ||
| 142 | + | ||
| 143 | + softwares.each do |s| | ||
| 144 | + communities << s.community | ||
| 145 | + end | ||
| 146 | + results = communities | ||
| 147 | + end | ||
| 148 | + | ||
| 149 | + results = results.paginate(:per_page => 24, :page => params[:page]) | ||
| 150 | + @searches[@asset] = {:results => results} | ||
| 151 | + @search = results | ||
| 152 | + | ||
| 153 | + render :action => :communities | ||
| 154 | + end | ||
| 155 | + | ||
| 156 | + [{ | ||
| 157 | + :type => "before_filter", | ||
| 158 | + :method_name => "search_software_filters", | ||
| 159 | + :options => { :only=>:communities }, | ||
| 160 | + :block => block | ||
| 161 | + }] | ||
| 162 | + end | ||
| 163 | + | ||
| 133 | def profile_tabs | 164 | def profile_tabs |
| 134 | if context.profile.person? | 165 | if context.profile.person? |
| 135 | { :title => _("Mpog"), | 166 | { :title => _("Mpog"), |
| @@ -380,16 +411,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin | @@ -380,16 +411,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin | ||
| 380 | elsif params[:action] == "communities" and params[:type] == "Institution" | 411 | elsif params[:action] == "communities" and params[:type] == "Institution" |
| 381 | 412 | ||
| 382 | elsif params[:action] == "communities" and params[:type] == "Software" | 413 | elsif params[:action] == "communities" and params[:type] == "Software" |
| 383 | - softwares = SoftwareInfo.search(params[:name], params[:database_description][:id], | ||
| 384 | - params[:programming_language][:id], params[:operating_system][:id], | ||
| 385 | - params[:license_info][:id], params[:e_ping], params[:e_mag], params[:internacionalizable], | ||
| 386 | - params[:icp_brasil], params[:e_arq], params[:controlled_vocabulary]) | ||
| 387 | - communities = [] | ||
| 388 | - | ||
| 389 | - softwares.each do |s| | ||
| 390 | - communities << s.community | ||
| 391 | - end | ||
| 392 | - communities | 414 | + # Replaced by noosfero before_filter instead of hotspot |
| 393 | else | 415 | else |
| 394 | [] # An empty list will trigger noosfero's default communities search | 416 | [] # An empty list will trigger noosfero's default communities search |
| 395 | end | 417 | end |