Commit 1e3775445213e7c431110c4b8fa57b792b420d70
1 parent
a0cb5ec6
Exists in
master
and in
5 other branches
Refactoring remove custom_search hotspot for search_controller
(institution_fields) Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com> Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
Showing
2 changed files
with
32 additions
and
28 deletions
Show diff stats
lib/ext/person.rb
@@ -12,22 +12,22 @@ class Person | @@ -12,22 +12,22 @@ class Person | ||
12 | like_sql = "" | 12 | like_sql = "" |
13 | values = [] | 13 | values = [] |
14 | 14 | ||
15 | - unless name.nil? and name.blank? | ||
16 | - like_sql << "name ILIKE ? AND " | ||
17 | - values << "%#{name}%" | 15 | + unless name.blank? |
16 | + like_sql << "name ILIKE ? OR identifier ILIKE ? AND " | ||
17 | + values << "%#{name}%" << "%#{name}%" | ||
18 | end | 18 | end |
19 | 19 | ||
20 | - unless state.nil? and state.blank? | 20 | + unless state.blank? |
21 | like_sql << "data ILIKE ? AND " | 21 | like_sql << "data ILIKE ? AND " |
22 | values << "%:state: %#{state}%" | 22 | values << "%:state: %#{state}%" |
23 | end | 23 | end |
24 | 24 | ||
25 | - unless city.nil? and city.blank? | 25 | + unless city.blank? |
26 | like_sql << "data ILIKE ? AND " | 26 | like_sql << "data ILIKE ? AND " |
27 | values << "%:city: %#{city}%" | 27 | values << "%:city: %#{city}%" |
28 | end | 28 | end |
29 | 29 | ||
30 | - unless email.nil? and email.blank? | 30 | + unless email.blank? |
31 | like_sql << "email ILIKE ? AND " | 31 | like_sql << "email ILIKE ? AND " |
32 | values << "%#{email}%" | 32 | values << "%#{email}%" |
33 | end | 33 | end |
lib/mpog_software_plugin.rb
@@ -131,9 +131,9 @@ class MpogSoftwarePlugin < Noosfero::Plugin | @@ -131,9 +131,9 @@ class MpogSoftwarePlugin < Noosfero::Plugin | ||
131 | end | 131 | end |
132 | 132 | ||
133 | def search_controller_filters | 133 | def search_controller_filters |
134 | - block = proc do | 134 | + community_block = proc do |
135 | results = [] | 135 | results = [] |
136 | - if params[:action] == "communities" and params[:type] == "Software" | 136 | + if params[:type] == "Software" |
137 | softwares = SoftwareInfo.search(params[:name], params[:database_description][:id], | 137 | softwares = SoftwareInfo.search(params[:name], params[:database_description][:id], |
138 | params[:programming_language][:id], params[:operating_system][:id], | 138 | params[:programming_language][:id], params[:operating_system][:id], |
139 | params[:license_info][:id], params[:e_ping], params[:e_mag], params[:internacionalizable], | 139 | params[:license_info][:id], params[:e_ping], params[:e_mag], params[:internacionalizable], |
@@ -144,20 +144,42 @@ class MpogSoftwarePlugin < Noosfero::Plugin | @@ -144,20 +144,42 @@ class MpogSoftwarePlugin < Noosfero::Plugin | ||
144 | communities << s.community | 144 | communities << s.community |
145 | end | 145 | end |
146 | results = communities | 146 | results = communities |
147 | + results = results.paginate(:per_page => 24, :page => params[:page]) | ||
148 | + @searches[@asset] = {:results => results} | ||
149 | + @search = results | ||
150 | + | ||
151 | + render :action => :communities | ||
147 | end | 152 | end |
153 | + end | ||
154 | + | ||
155 | + people_block = proc do | ||
156 | + results = [] | ||
157 | + | ||
158 | + results = environment.people.search(name = params[:name], | ||
159 | + state = params[:state], | ||
160 | + city = params[:city], | ||
161 | + email = params[:email] | ||
162 | + ) | ||
148 | 163 | ||
149 | results = results.paginate(:per_page => 24, :page => params[:page]) | 164 | results = results.paginate(:per_page => 24, :page => params[:page]) |
150 | @searches[@asset] = {:results => results} | 165 | @searches[@asset] = {:results => results} |
151 | @search = results | 166 | @search = results |
152 | 167 | ||
153 | - render :action => :communities | 168 | + render :action => :people |
154 | end | 169 | end |
155 | 170 | ||
171 | + | ||
156 | [{ | 172 | [{ |
157 | :type => "before_filter", | 173 | :type => "before_filter", |
174 | + :method_name => "search_person_filters", | ||
175 | + :options => { :only=>:people }, | ||
176 | + :block => people_block | ||
177 | + }, | ||
178 | + { | ||
179 | + :type => "before_filter", | ||
158 | :method_name => "search_software_filters", | 180 | :method_name => "search_software_filters", |
159 | :options => { :only=>:communities }, | 181 | :options => { :only=>:communities }, |
160 | - :block => block | 182 | + :block => community_block |
161 | }] | 183 | }] |
162 | end | 184 | end |
163 | 185 | ||
@@ -399,24 +421,6 @@ class MpogSoftwarePlugin < Noosfero::Plugin | @@ -399,24 +421,6 @@ class MpogSoftwarePlugin < Noosfero::Plugin | ||
399 | end | 421 | end |
400 | end | 422 | end |
401 | 423 | ||
402 | - def custom_search params | ||
403 | - #:params => {"type"=>"Software", "query"=>"", "name"=>"", "database_description"=>"1", "programming_language"=>"1", "operating_system"=>"1", "controlled_vocabulary"=>"Administration", "license_info"=>{"id"=>""}, "e_ping"=>"any", "e_mag"=>"any", "icp_brasil"=>"any", "e_arq"=>"any", "internacionalizable"=>"any", "commit"=>"Search", "controller"=>"search", "action"=>"communities"} | ||
404 | - | ||
405 | - if params[:action] == "people" | ||
406 | - Person.search(params[:name], | ||
407 | - params[:state], | ||
408 | - params[:city], | ||
409 | - params[:email] | ||
410 | - ) | ||
411 | - elsif params[:action] == "communities" and params[:type] == "Institution" | ||
412 | - | ||
413 | - elsif params[:action] == "communities" and params[:type] == "Software" | ||
414 | - # Replaced by noosfero before_filter instead of hotspot | ||
415 | - else | ||
416 | - [] # An empty list will trigger noosfero's default communities search | ||
417 | - end | ||
418 | - end | ||
419 | - | ||
420 | def controlled_vocabulary_transaction | 424 | def controlled_vocabulary_transaction |
421 | ControlledVocabulary.transaction do | 425 | ControlledVocabulary.transaction do |
422 | context.profile.software_info.controlled_vocabulary.update_attributes!(context.params[:controlled_vocabulary]) | 426 | context.profile.software_info.controlled_vocabulary.update_attributes!(context.params[:controlled_vocabulary]) |