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 | 130 | }] |
| 131 | 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 | 164 | def profile_tabs |
| 134 | 165 | if context.profile.person? |
| 135 | 166 | { :title => _("Mpog"), |
| ... | ... | @@ -380,16 +411,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
| 380 | 411 | elsif params[:action] == "communities" and params[:type] == "Institution" |
| 381 | 412 | |
| 382 | 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 | 415 | else |
| 394 | 416 | [] # An empty list will trigger noosfero's default communities search |
| 395 | 417 | end | ... | ... |