diff --git a/lib/software_info.rb b/lib/software_info.rb index 3cd0e40..350696d 100644 --- a/lib/software_info.rb +++ b/lib/software_info.rb @@ -166,7 +166,7 @@ class SoftwareInfo < ActiveRecord::Base another_license_link = attributes.delete(:another_license_link) software_info = SoftwareInfo.new(attributes) - if !environment.admins.include? requestor + unless environment.admins.include? requestor CreateSoftware.create!( attributes.merge( :requestor => requestor, @@ -189,15 +189,16 @@ class SoftwareInfo < ActiveRecord::Base community.template_id = software_template.id end - software_info.license_info = license_info - software_info.save - community.software_info = software_info community.save! community.add_admin(requestor) + + software_info.community = community + software_info.license_info = license_info + software_info.save! end software_info.verify_license_info(another_license_version, another_license_link) - software_info.save! + software_info.save software_info end diff --git a/test/functional/software_communities_plugin_myprofile_controller_test.rb b/test/functional/software_communities_plugin_myprofile_controller_test.rb index f4e97cc..f6e2e8e 100644 --- a/test/functional/software_communities_plugin_myprofile_controller_test.rb +++ b/test/functional/software_communities_plugin_myprofile_controller_test.rb @@ -186,4 +186,22 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC assert_includes @response.body, "Domain is not available" end + + should "create software with admin moderation" do + @environment.enable('admin_must_approve_new_communities') + + post( + :new_software, + :community => {:name =>"New Software", :identifier => "new-software"}, + :software_info => {:finality => "something", :repository_link => ""}, + :license =>{:license_infos_id => LicenseInfo.last.id}, + :profile => @person.identifier + ) + + @environment.add_admin(@person) + Task.last.send('finish', @person) + + assert_equal "New Software", Task.last.data[:name] + assert_equal "New Software", SoftwareInfo.last.community.name + end end -- libgit2 0.21.2