Commit 28ca885dad773b1a6958da49658351340ede5b4b

Authored by Luciano Prestes
Committed by Thiago Ribeiro
1 parent babb6d68

Refactor software creation control

Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
Signed-off-by: Marcos Ronaldo <marcos.rpj2@gmail.com>
controllers/software_communities_plugin_myprofile_controller.rb
... ... @@ -9,19 +9,16 @@ class SoftwareCommunitiesPluginMyprofileController &lt; MyProfileController
9 9  
10 10 @community = Community.new(params[:community])
11 11 @community.environment = environment
12   - @software_info = SoftwareInfo.new(params[:software_info])
13 12  
14   - @license_info = if params[:license].blank? or params[:license][:license_infos_id].blank?
15   - LicenseInfo.new
16   - else
17   - LicenseInfo.find(params[:license][:license_infos_id])
18   - end
  13 + @license_info = LicenseInfo.find_by_id(params[:license][:license_infos_id]) if params[:license]
  14 + @license_info ||= LicenseInfo.new
19 15  
  16 + @software_info = SoftwareInfo.new(params[:software_info])
20 17 @software_info.community = @community
21 18 @software_info.license_info = @license_info
22 19  
23 20 control_software_creation
24   - update_new_software_errors
  21 + update_software_highlight_errors
25 22 end
26 23  
27 24 def edit_software
... ... @@ -48,7 +45,7 @@ class SoftwareCommunitiesPluginMyprofileController &lt; MyProfileController
48 45 session[:notice] = _('Software updated successfully')
49 46 end
50 47 rescue ActiveRecord::RecordInvalid => invalid
51   - update_new_software_errors
  48 + update_software_highlight_errors
52 49 session[:notice] = _('Could not update software')
53 50 end
54 51 end
... ... @@ -71,11 +68,15 @@ class SoftwareCommunitiesPluginMyprofileController &lt; MyProfileController
71 68 end
72 69  
73 70 def control_software_creation
74   - valid_models = request.post? && (@community.valid? && @software_info.valid? && @license_info.valid?)
75   - if valid_models
76   - send_software_to_moderation
77   - else
78   - add_software_erros
  71 + if request.post?
  72 + valid_models = @community.valid?
  73 + valid_models &= @software_info.valid?
  74 + valid_models &= @license_info.valid?
  75 + if valid_models
  76 + send_software_to_moderation
  77 + else
  78 + add_software_erros
  79 + end
79 80 end
80 81 end
81 82  
... ... @@ -133,7 +134,7 @@ class SoftwareCommunitiesPluginMyprofileController &lt; MyProfileController
133 134  
134 135 add_admin_to_community
135 136  
136   - if !environment.admins.include?(current_user.person)
  137 + if !environment.admins.include?(current_user.person)
137 138 session[:notice] = _('Your new software request will be evaluated by an'\
138 139 'administrator. You will be notified.')
139 140 redirect_to user.admin_url
... ... @@ -183,15 +184,7 @@ class SoftwareCommunitiesPluginMyprofileController &lt; MyProfileController
183 184 end
184 185 end
185 186  
186   - def update_new_software_errors
187   - if request.post?
188   - @community.valid? if @community
189   - @software_info.valid? if @software_info
190   - @license_info.valid? if @license_info
191   - add_software_erros
192   - end
193   -
194   -
  187 + def update_software_highlight_errors
195 188 @error_community_name = @community.errors.include?(:name) ? "highlight-error" : "" if @community
196 189 @error_software_acronym = @software_info.errors.include?(:acronym) ? "highlight-error" : "" if @software_info
197 190 @error_software_domain = @community.errors.include?(:identifier) ? "highlight-error" : "" if @community
... ...