Commit 1e3775445213e7c431110c4b8fa57b792b420d70

Authored by Luciano Prestes
1 parent a0cb5ec6

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 &lt; Noosfero::Plugin @@ -131,9 +131,9 @@ class MpogSoftwarePlugin &lt; 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 &lt; Noosfero::Plugin @@ -144,20 +144,42 @@ class MpogSoftwarePlugin &lt; 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 &lt; Noosfero::Plugin @@ -399,24 +421,6 @@ class MpogSoftwarePlugin &lt; 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])