]> source.dussan.org Git - redmine.git/commitdiff
Fixed: error raised when copying project wiki with wiki module disabled (#13097).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 7 Feb 2013 19:24:57 +0000 (19:24 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 7 Feb 2013 19:24:57 +0000 (19:24 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11332 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/project.rb
test/unit/project_copy_test.rb

index 28cb52ddcf39025040951b8aa667311fa825d070..fdb47cfdd8a56b2c8b10c3a8a5ebc60b78953cac 100644 (file)
@@ -772,7 +772,7 @@ class Project < ActiveRecord::Base
   def copy_wiki(project)
     # Check that the source project has a wiki first
     unless project.wiki.nil?
-      self.wiki ||= Wiki.new
+      wiki = self.wiki || Wiki.new
       wiki.attributes = project.wiki.attributes.dup.except("id", "project_id")
       wiki_pages_map = {}
       project.wiki.pages.each do |page|
@@ -784,6 +784,8 @@ class Project < ActiveRecord::Base
         wiki.pages << new_wiki_page
         wiki_pages_map[page.id] = new_wiki_page
       end
+
+      self.wiki = wiki
       wiki.save
       # Reproduce page hierarchy
       project.wiki.pages.each do |page|
index cc76852c906aaa6471e19e4001d5e274bae25910..6b505b2b2e8bdd6b5279b09b3a31a067aacec998 100644 (file)
@@ -233,6 +233,15 @@ class ProjectCopyTest < ActiveSupport::TestCase
     assert_equal "Start page", @project.wiki.start_page
   end
 
+  test "#copy should copy wiki without wiki module" do
+    project = Project.new(:name => 'Copy Test', :identifier => 'copy-test', :enabled_module_names => [])
+    assert_difference 'Wiki.count' do
+      assert project.copy(@source_project)
+    end
+
+    assert project.wiki
+  end
+
   test "#copy should copy wiki pages and content with hierarchy" do
     assert_difference 'WikiPage.count', @source_project.wiki.pages.size do
       assert @project.copy(@source_project)