diff --git a/controllers/software_communities_plugin_myprofile_controller.rb b/controllers/software_communities_plugin_myprofile_controller.rb index 3929c67..eda06e2 100644 --- a/controllers/software_communities_plugin_myprofile_controller.rb +++ b/controllers/software_communities_plugin_myprofile_controller.rb @@ -9,19 +9,16 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController @community = Community.new(params[:community]) @community.environment = environment - @software_info = SoftwareInfo.new(params[:software_info]) - @license_info = if params[:license].blank? or params[:license][:license_infos_id].blank? - LicenseInfo.new - else - LicenseInfo.find(params[:license][:license_infos_id]) - end + @license_info = LicenseInfo.find_by_id(params[:license][:license_infos_id]) if params[:license] + @license_info ||= LicenseInfo.new + @software_info = SoftwareInfo.new(params[:software_info]) @software_info.community = @community @software_info.license_info = @license_info control_software_creation - update_new_software_errors + update_software_highlight_errors end def edit_software @@ -48,7 +45,7 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController session[:notice] = _('Software updated successfully') end rescue ActiveRecord::RecordInvalid => invalid - update_new_software_errors + update_software_highlight_errors session[:notice] = _('Could not update software') end end @@ -71,11 +68,15 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController end def control_software_creation - valid_models = request.post? && (@community.valid? && @software_info.valid? && @license_info.valid?) - if valid_models - send_software_to_moderation - else - add_software_erros + if request.post? + valid_models = @community.valid? + valid_models &= @software_info.valid? + valid_models &= @license_info.valid? + if valid_models + send_software_to_moderation + else + add_software_erros + end end end @@ -133,7 +134,7 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController add_admin_to_community - if !environment.admins.include?(current_user.person) + if !environment.admins.include?(current_user.person) session[:notice] = _('Your new software request will be evaluated by an'\ 'administrator. You will be notified.') redirect_to user.admin_url @@ -183,15 +184,7 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController end end - def update_new_software_errors - if request.post? - @community.valid? if @community - @software_info.valid? if @software_info - @license_info.valid? if @license_info - add_software_erros - end - - + def update_software_highlight_errors @error_community_name = @community.errors.include?(:name) ? "highlight-error" : "" if @community @error_software_acronym = @software_info.errors.include?(:acronym) ? "highlight-error" : "" if @software_info @error_software_domain = @community.errors.include?(:identifier) ? "highlight-error" : "" if @community -- libgit2 0.21.2