summaryrefslogtreecommitdiffstats
path: root/app/models/project.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-10-25 10:30:39 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-10-25 10:30:39 +0000
commita9fb11c0f570336ffe39abddfec1241d052ea76d (patch)
tree0872276b9c1b6cd2b47feef9be37d03b943d42fa /app/models/project.rb
parenteecec44ed298afdf3e254b1143f209a477a23bd2 (diff)
downloadredmine-a9fb11c0f570336ffe39abddfec1241d052ea76d.tar.gz
redmine-a9fb11c0f570336ffe39abddfec1241d052ea76d.zip
Fixes project wiki copy.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2969 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/project.rb')
-rw-r--r--app/models/project.rb27
1 files changed, 17 insertions, 10 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 70ec85dda..7438e5ff9 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -412,11 +412,14 @@ class Project < ActiveRecord::Base
to_be_copied = to_be_copied & options[:only].to_a unless options[:only].nil?
Project.transaction do
- to_be_copied.each do |name|
- send "copy_#{name}", project
+ if save
+ reload
+ to_be_copied.each do |name|
+ send "copy_#{name}", project
+ end
+ Redmine::Hook.call_hook(:model_project_copy_before_save, :source_project => project, :destination_project => self)
+ save
end
- Redmine::Hook.call_hook(:model_project_copy_before_save, :source_project => project, :destination_project => self)
- self.save
end
end
@@ -447,12 +450,16 @@ class Project < ActiveRecord::Base
# Copies wiki from +project+
def copy_wiki(project)
- self.wiki = Wiki.new(project.wiki.attributes.dup.except("project_id"))
- project.wiki.pages.each do |page|
- new_wiki_content = WikiContent.new(page.content.attributes.dup.except("page_id"))
- new_wiki_page = WikiPage.new(page.attributes.dup.except("wiki_id"))
- new_wiki_page.content = new_wiki_content
- self.wiki.pages << new_wiki_page
+ # Check that the source project has a wiki first
+ unless project.wiki.nil?
+ self.wiki ||= Wiki.new
+ wiki.attributes = project.wiki.attributes.dup.except("project_id")
+ project.wiki.pages.each do |page|
+ new_wiki_content = WikiContent.new(page.content.attributes.dup.except("page_id"))
+ new_wiki_page = WikiPage.new(page.attributes.dup.except("wiki_id"))
+ new_wiki_page.content = new_wiki_content
+ wiki.pages << new_wiki_page
+ end
end
end