Commit e511b31419616ce81f852502d808f90c3641e174

Authored by Luciano Prestes
Committed by David Silva
1 parent 342ae8df
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

Refactor complexity of code

Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
controllers/mpog_software_plugin_controller.rb
@@ -113,17 +113,12 @@ class MpogSoftwarePluginController &lt; ApplicationController @@ -113,17 +113,12 @@ class MpogSoftwarePluginController &lt; ApplicationController
113 condition = !request.xhr? || params[:query].nil? || params[:field].nil? 113 condition = !request.xhr? || params[:query].nil? || params[:field].nil?
114 return render :json=>{} if condition 114 return render :json=>{} if condition
115 115
116 - model = case params[:field]  
117 - when "software_language"  
118 - ProgrammingLanguage  
119 - else  
120 - DatabaseDescription  
121 - end 116 + model = get_model_by_params_field
122 117
123 data = model.where("name ILIKE ?", "%#{params[:query]}%").select("id, name") 118 data = model.where("name ILIKE ?", "%#{params[:query]}%").select("id, name")
124 - data = data.collect { |db|  
125 - {:id=>db.id, :label=>db.name}  
126 - } 119 + .collect { |db|
  120 + {:id=>db.id, :label=>db.name}
  121 + }
127 122
128 other = [model.select("id, name").last].collect { |db| 123 other = [model.select("id, name").last].collect { |db|
129 {:id=>db.id, :label=>db.name} 124 {:id=>db.id, :label=>db.name}
@@ -236,4 +231,13 @@ class MpogSoftwarePluginController &lt; ApplicationController @@ -236,4 +231,13 @@ class MpogSoftwarePluginController &lt; ApplicationController
236 redirect_to :controller => "mpog_software_plugin", :action => "create_institution_admin" 231 redirect_to :controller => "mpog_software_plugin", :action => "create_institution_admin"
237 end 232 end
238 end 233 end
  234 +
  235 + def get_model_by_params_field
  236 + case params[:field]
  237 + when "software_language"
  238 + return ProgrammingLanguage
  239 + else
  240 + return DatabaseDescription
  241 + end
  242 + end
239 end 243 end
controllers/mpog_software_plugin_myprofile_controller.rb
@@ -15,7 +15,7 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController @@ -15,7 +15,7 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
15 15
16 def new_software 16 def new_software
17 set_software_as_template 17 set_software_as_template
18 - 18 +
19 @community = Community.new(params[:community]) 19 @community = Community.new(params[:community])
20 @community.environment = environment 20 @community.environment = environment
21 @software_info = SoftwareInfo.new(params[:software_info]) 21 @software_info = SoftwareInfo.new(params[:software_info])
@@ -55,6 +55,7 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController @@ -55,6 +55,7 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
55 session[:notice] = _('Software updated sucessefuly') 55 session[:notice] = _('Software updated sucessefuly')
56 end 56 end
57 rescue ActiveRecord::RecordInvalid => invalid 57 rescue ActiveRecord::RecordInvalid => invalid
  58 + session[:notice] = _('Could not update software')
58 end 59 end
59 end 60 end
60 61
features/step_definitions/mpog_steps.rb
@@ -116,9 +116,9 @@ Given /^the following softwares$/ do |table| @@ -116,9 +116,9 @@ Given /^the following softwares$/ do |table|
116 software_info.community = Community.create(:name=>item[:name]) 116 software_info.community = Community.create(:name=>item[:name])
117 117
118 software_info.acronym = item[:acronym] if item[:acronym] 118 software_info.acronym = item[:acronym] if item[:acronym]
119 - software_info.acronym = item[:operating_platform] if item[:operating_platform]  
120 - software_info.acronym = item[:objectives] if item[:objectives]  
121 - software_info.acronym = item[:features] if item[:features] 119 + software_info.operating_platform = item[:operating_platform] if item[:operating_platform]
  120 + software_info.objectives = item[:objectives] if item[:objectives]
  121 + software_info.features = item[:features] if item[:features]
122 software_info.public_software = item[:public_software] == "true" if item[:public_software] 122 software_info.public_software = item[:public_software] == "true" if item[:public_software]
123 123
124 if item[:software_language] 124 if item[:software_language]
lib/ext/communities_block.rb
@@ -3,21 +3,13 @@ require_dependency &#39;communities_block&#39; @@ -3,21 +3,13 @@ require_dependency &#39;communities_block&#39;
3 class CommunitiesBlock 3 class CommunitiesBlock
4 4
5 def profile_list 5 def profile_list
6 - result = nil  
7 - visible_profiles = profiles.visible.includes([:image,:domains,:preferred_domain,:environment])  
8 - if !prioritize_profiles_with_image  
9 - result = visible_profiles.all(:limit => get_limit, :order => 'profiles.updated_at DESC').sort_by{ rand }  
10 - elsif profiles.visible.with_image.count >= get_limit  
11 - result = visible_profiles.with_image.all(:limit => get_limit * 5, :order => 'profiles.updated_at DESC').sort_by{ rand }  
12 - else  
13 - result = visible_profiles.with_image.sort_by{ rand } + visible_profiles.without_image.all(:limit => get_limit * 5, :order => 'profiles.updated_at DESC').sort_by{ rand }  
14 - end 6 + result = get_visible_profiles
15 7
16 list_without_software_and_institution = [] 8 list_without_software_and_institution = []
17 9
18 - visible_profiles.each do |p|  
19 - if p.class == Community and !p.software? and !p.institution?  
20 - list_without_software_and_institution << p 10 + result.each do |profile|
  11 + if profile.class == Community && !profile.software? && !profile.institution?
  12 + list_without_software_and_institution << profile
21 end 13 end
22 end 14 end
23 15
@@ -30,4 +22,28 @@ class CommunitiesBlock @@ -30,4 +22,28 @@ class CommunitiesBlock
30 profile_list.count 22 profile_list.count
31 end 23 end
32 24
  25 + private
  26 +
  27 + def get_visible_profiles
  28 + visible_profiles = profiles.visible.includes(
  29 + [:image,:domains,:preferred_domain,:environment]
  30 + )
  31 + if !prioritize_profiles_with_image
  32 + return visible_profiles.all(
  33 + :limit => get_limit,
  34 + :order => 'profiles.updated_at DESC'
  35 + ).sort_by {rand}
  36 + elsif profiles.visible.with_image.count >= get_limit
  37 + return visible_profiles.with_image.all(
  38 + :limit => get_limit * 5,
  39 + :order => 'profiles.updated_at DESC'
  40 + ).sort_by {rand}
  41 + else
  42 + return visible_profiles.with_image.sort_by {rand} +
  43 + visible_profiles.without_image.all(
  44 + :limit => get_limit * 5, :order => 'profiles.updated_at DESC'
  45 + ).sort_by {rand}
  46 + end
  47 + end
  48 +
33 end 49 end
34 \ No newline at end of file 50 \ No newline at end of file
lib/ext/person.rb
@@ -10,37 +10,6 @@ class Person @@ -10,37 +10,6 @@ class Person
10 10
11 delegate :login, :to => :user, :prefix => true 11 delegate :login, :to => :user, :prefix => true
12 12
13 - scope :search, lambda { |name="", state="", city="", email=""|  
14 - like_sql = ""  
15 - values = []  
16 -  
17 - unless name.blank?  
18 - like_sql << "name ILIKE ? OR identifier ILIKE ? AND "  
19 - values << "%#{name}%" << "%#{name}%"  
20 - end  
21 -  
22 - unless state.blank?  
23 - like_sql << "data ILIKE ? AND "  
24 - values << "%:state: %#{state}%"  
25 - end  
26 -  
27 - unless city.blank?  
28 - like_sql << "data ILIKE ? AND "  
29 - values << "%:city: %#{city}%"  
30 - end  
31 -  
32 - unless email.blank?  
33 - like_sql << "email ILIKE ? AND "  
34 - values << "%#{email}%"  
35 - end  
36 - like_sql = like_sql[0..like_sql.length-5]  
37 -  
38 - {  
39 - :joins => :user,  
40 - :conditions=>[like_sql, *values]  
41 - }  
42 - }  
43 -  
44 def institutions 13 def institutions
45 institutions = [] 14 institutions = []
46 unless self.user.institutions.nil? 15 unless self.user.institutions.nil?
lib/ext/user.rb
@@ -2,6 +2,8 @@ require_dependency &#39;user&#39; @@ -2,6 +2,8 @@ require_dependency &#39;user&#39;
2 2
3 class User 3 class User
4 4
  5 + GOV_SUFFIX = /^.*@[gov.br|jus.br|leg.br|mp.br]+$/
  6 +
5 has_and_belongs_to_many :institutions 7 has_and_belongs_to_many :institutions
6 8
7 validate :email_different_secondary?, :email_has_already_been_used?, 9 validate :email_different_secondary?, :email_has_already_been_used?,
@@ -51,28 +53,38 @@ class User @@ -51,28 +53,38 @@ class User
51 end 53 end
52 54
53 def email_suffix_is_gov? 55 def email_suffix_is_gov?
54 - test = /^.*@[gov.br|jus.br|leg.br|mp.br]+$/  
55 - primary_email_has_gov_suffix = false  
56 - secondary_email_has_gov_suffix = false 56 + check_gov_suffix_in_secondary_email
  57 + check_gov_email_have_institution
  58 + end
57 59
58 - if !self.email.nil? and self.email.length > 0  
59 - primary_email_has_gov_suffix = true if test.match(self.email)  
60 - end 60 + private
61 61
62 - unless primary_email_has_gov_suffix  
63 - if !self.secondary_email.nil? and self.secondary_email.length > 0  
64 - secondary_email_has_gov_suffix = !!test.match(self.secondary_email)  
65 - end 62 + def valid_format?(value, string_format)
  63 + !value.nil? && value.length > 0 && !string_format.match(value).nil?
  64 + end
  65 +
  66 + def check_gov_suffix_in_secondary_email
  67 + unless primary_email_has_gov_suffix?
66 self.errors.add( 68 self.errors.add(
67 :base, 69 :base,
68 _("The governamental email must be the primary one.") 70 _("The governamental email must be the primary one.")
69 - ) if secondary_email_has_gov_suffix 71 + ) if secondary_email_has_gov_suffix?
70 end 72 end
  73 + end
71 74
  75 + def check_gov_email_have_institution
72 self.errors.add( 76 self.errors.add(
73 :base, 77 :base,
74 _("Institution is obligatory if user has a government email.") 78 _("Institution is obligatory if user has a government email.")
75 - ) if primary_email_has_gov_suffix and self.institutions.blank? 79 + ) if primary_email_has_gov_suffix? && self.institutions.blank?
  80 + end
  81 +
  82 + def primary_email_has_gov_suffix?
  83 + valid_format?(self.email, GOV_SUFFIX)
  84 + end
  85 +
  86 + def secondary_email_has_gov_suffix?
  87 + valid_format?(self.secondary_email, GOV_SUFFIX)
76 end 88 end
77 89
78 end 90 end
79 \ No newline at end of file 91 \ No newline at end of file
lib/juridical_nature.rb
@@ -9,7 +9,7 @@ class JuridicalNature &lt; ActiveRecord::Base @@ -9,7 +9,7 @@ class JuridicalNature &lt; ActiveRecord::Base
9 def public_institutions 9 def public_institutions
10 Institution.where( 10 Institution.where(
11 :type=>"PublicInstitution", 11 :type=>"PublicInstitution",
12 - :governmental_power_id=>self.id 12 + :juridical_nature_id=>self.id
13 ) 13 )
14 end 14 end
15 end 15 end
lib/mpog_software_plugin.rb
@@ -42,7 +42,7 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin @@ -42,7 +42,7 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
42 single_hash_transactions.each do |model,transaction| 42 single_hash_transactions.each do |model,transaction|
43 call_model_transaction(model,transaction) 43 call_model_transaction(model,transaction)
44 end 44 end
45 - 45 +
46 end 46 end
47 47
48 def profile_editor_controller_filters 48 def profile_editor_controller_filters