Commit 1e3775445213e7c431110c4b8fa57b792b420d70

Authored by Luciano Prestes
1 parent a0cb5ec6
Exists in master and in 79 other branches add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup_not_prod, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev_env_minimal, disable_email_dev, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, prezento, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

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 12 like_sql = ""
13 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 18 end
19 19  
20   - unless state.nil? and state.blank?
  20 + unless state.blank?
21 21 like_sql << "data ILIKE ? AND "
22 22 values << "%:state: %#{state}%"
23 23 end
24 24  
25   - unless city.nil? and city.blank?
  25 + unless city.blank?
26 26 like_sql << "data ILIKE ? AND "
27 27 values << "%:city: %#{city}%"
28 28 end
29 29  
30   - unless email.nil? and email.blank?
  30 + unless email.blank?
31 31 like_sql << "email ILIKE ? AND "
32 32 values << "%#{email}%"
33 33 end
... ...
lib/mpog_software_plugin.rb
... ... @@ -131,9 +131,9 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
131 131 end
132 132  
133 133 def search_controller_filters
134   - block = proc do
  134 + community_block = proc do
135 135 results = []
136   - if params[:action] == "communities" and params[:type] == "Software"
  136 + if params[:type] == "Software"
137 137 softwares = SoftwareInfo.search(params[:name], params[:database_description][:id],
138 138 params[:programming_language][:id], params[:operating_system][:id],
139 139 params[:license_info][:id], params[:e_ping], params[:e_mag], params[:internacionalizable],
... ... @@ -144,20 +144,42 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
144 144 communities << s.community
145 145 end
146 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 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 164 results = results.paginate(:per_page => 24, :page => params[:page])
150 165 @searches[@asset] = {:results => results}
151 166 @search = results
152 167  
153   - render :action => :communities
  168 + render :action => :people
154 169 end
155 170  
  171 +
156 172 [{
157 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 180 :method_name => "search_software_filters",
159 181 :options => { :only=>:communities },
160   - :block => block
  182 + :block => community_block
161 183 }]
162 184 end
163 185  
... ... @@ -399,24 +421,6 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
399 421 end
400 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 424 def controlled_vocabulary_transaction
421 425 ControlledVocabulary.transaction do
422 426 context.profile.software_info.controlled_vocabulary.update_attributes!(context.params[:controlled_vocabulary])
... ...