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 | ... | ... |