mirror of
https://github.com/meineerde/redmine.git
synced 2025-10-17 17:01:01 +00:00
Merged bug fixes r3412 to r3414.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3432 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
0ef11ef4fe
commit
57dcbd7376
@ -21,8 +21,8 @@ class IssueRelationsController < ApplicationController
|
|||||||
def new
|
def new
|
||||||
@relation = IssueRelation.new(params[:relation])
|
@relation = IssueRelation.new(params[:relation])
|
||||||
@relation.issue_from = @issue
|
@relation.issue_from = @issue
|
||||||
if params[:relation] && !params[:relation][:issue_to_id].blank?
|
if params[:relation] && m = params[:relation][:issue_to_id].to_s.match(/^#?(\d+)$/)
|
||||||
@relation.issue_to = Issue.visible.find_by_id(params[:relation][:issue_to_id])
|
@relation.issue_to = Issue.visible.find_by_id(m[1].to_i)
|
||||||
end
|
end
|
||||||
@relation.save if request.post?
|
@relation.save if request.post?
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
|||||||
@ -512,11 +512,23 @@ class Project < ActiveRecord::Base
|
|||||||
unless project.wiki.nil?
|
unless project.wiki.nil?
|
||||||
self.wiki ||= Wiki.new
|
self.wiki ||= Wiki.new
|
||||||
wiki.attributes = project.wiki.attributes.dup.except("id", "project_id")
|
wiki.attributes = project.wiki.attributes.dup.except("id", "project_id")
|
||||||
|
wiki_pages_map = {}
|
||||||
project.wiki.pages.each do |page|
|
project.wiki.pages.each do |page|
|
||||||
|
# Skip pages without content
|
||||||
|
next if page.content.nil?
|
||||||
new_wiki_content = WikiContent.new(page.content.attributes.dup.except("id", "page_id", "updated_on"))
|
new_wiki_content = WikiContent.new(page.content.attributes.dup.except("id", "page_id", "updated_on"))
|
||||||
new_wiki_page = WikiPage.new(page.attributes.dup.except("id", "wiki_id", "created_on", "parent_id"))
|
new_wiki_page = WikiPage.new(page.attributes.dup.except("id", "wiki_id", "created_on", "parent_id"))
|
||||||
new_wiki_page.content = new_wiki_content
|
new_wiki_page.content = new_wiki_content
|
||||||
wiki.pages << new_wiki_page
|
wiki.pages << new_wiki_page
|
||||||
|
wiki_pages_map[page.id] = new_wiki_page
|
||||||
|
end
|
||||||
|
wiki.save
|
||||||
|
# Reproduce page hierarchy
|
||||||
|
project.wiki.pages.each do |page|
|
||||||
|
if page.parent_id && wiki_pages_map[page.id]
|
||||||
|
wiki_pages_map[page.id].parent = wiki_pages_map[page.parent_id]
|
||||||
|
wiki_pages_map[page.id].save
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -728,6 +728,7 @@ background-image:url('../images/close_hl.png');
|
|||||||
padding:0;
|
padding:0;
|
||||||
margin:0;
|
margin:0;
|
||||||
line-height:0.8em;
|
line-height:0.8em;
|
||||||
|
white-space:nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
|
.task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
|
||||||
|
|||||||
24
test/fixtures/wiki_contents.yml
vendored
24
test/fixtures/wiki_contents.yml
vendored
@ -71,4 +71,28 @@ wiki_contents_006:
|
|||||||
version: 1
|
version: 1
|
||||||
author_id: 1
|
author_id: 1
|
||||||
comments:
|
comments:
|
||||||
|
wiki_contents_007:
|
||||||
|
text: This is a child page
|
||||||
|
updated_on: 2007-03-08 00:18:07 +01:00
|
||||||
|
page_id: 7
|
||||||
|
id: 7
|
||||||
|
version: 1
|
||||||
|
author_id: 1
|
||||||
|
comments:
|
||||||
|
wiki_contents_008:
|
||||||
|
text: This is a parent page
|
||||||
|
updated_on: 2007-03-08 00:18:07 +01:00
|
||||||
|
page_id: 8
|
||||||
|
id: 8
|
||||||
|
version: 1
|
||||||
|
author_id: 1
|
||||||
|
comments:
|
||||||
|
wiki_contents_009:
|
||||||
|
text: This is a child page
|
||||||
|
updated_on: 2007-03-08 00:18:07 +01:00
|
||||||
|
page_id: 9
|
||||||
|
id: 9
|
||||||
|
version: 1
|
||||||
|
author_id: 1
|
||||||
|
comments:
|
||||||
|
|
||||||
21
test/fixtures/wiki_pages.yml
vendored
21
test/fixtures/wiki_pages.yml
vendored
@ -41,4 +41,25 @@ wiki_pages_006:
|
|||||||
wiki_id: 1
|
wiki_id: 1
|
||||||
protected: false
|
protected: false
|
||||||
parent_id: 2
|
parent_id: 2
|
||||||
|
wiki_pages_007:
|
||||||
|
created_on: 2007-03-08 00:18:07 +01:00
|
||||||
|
title: Child_page_1
|
||||||
|
id: 7
|
||||||
|
wiki_id: 2
|
||||||
|
protected: false
|
||||||
|
parent_id: 8
|
||||||
|
wiki_pages_008:
|
||||||
|
created_on: 2007-03-08 00:18:07 +01:00
|
||||||
|
title: Parent_page
|
||||||
|
id: 8
|
||||||
|
wiki_id: 2
|
||||||
|
protected: false
|
||||||
|
parent_id:
|
||||||
|
wiki_pages_009:
|
||||||
|
created_on: 2007-03-08 00:18:07 +01:00
|
||||||
|
title: Child_page_2
|
||||||
|
id: 9
|
||||||
|
wiki_id: 2
|
||||||
|
protected: false
|
||||||
|
parent_id: 8
|
||||||
|
|
||||||
@ -40,6 +40,24 @@ class IssueRelationsControllerTest < ActionController::TestCase
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_new_should_accept_id_with_hash
|
||||||
|
assert_difference 'IssueRelation.count' do
|
||||||
|
@request.session[:user_id] = 3
|
||||||
|
post :new, :issue_id => 1,
|
||||||
|
:relation => {:issue_to_id => '#2', :relation_type => 'relates', :delay => ''}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_new_should_not_break_with_non_numerical_id
|
||||||
|
assert_no_difference 'IssueRelation.count' do
|
||||||
|
assert_nothing_raised do
|
||||||
|
@request.session[:user_id] = 3
|
||||||
|
post :new, :issue_id => 1,
|
||||||
|
:relation => {:issue_to_id => 'foo', :relation_type => 'relates', :delay => ''}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_should_create_relations_with_visible_issues_only
|
def test_should_create_relations_with_visible_issues_only
|
||||||
Setting.cross_project_issue_relations = '1'
|
Setting.cross_project_issue_relations = '1'
|
||||||
assert_nil Issue.visible(User.find(3)).find_by_id(4)
|
assert_nil Issue.visible(User.find(3)).find_by_id(4)
|
||||||
|
|||||||
@ -723,16 +723,24 @@ class ProjectTest < ActiveSupport::TestCase
|
|||||||
assert_equal "Start page", @project.wiki.start_page
|
assert_equal "Start page", @project.wiki.start_page
|
||||||
end
|
end
|
||||||
|
|
||||||
should "copy wiki pages and content" do
|
should "copy wiki pages and content with hierarchy" do
|
||||||
assert @project.copy(@source_project)
|
assert_difference 'WikiPage.count', @source_project.wiki.pages.size do
|
||||||
|
assert @project.copy(@source_project)
|
||||||
|
end
|
||||||
|
|
||||||
assert @project.wiki
|
assert @project.wiki
|
||||||
assert_equal 1, @project.wiki.pages.length
|
assert_equal @source_project.wiki.pages.size, @project.wiki.pages.size
|
||||||
|
|
||||||
@project.wiki.pages.each do |wiki_page|
|
@project.wiki.pages.each do |wiki_page|
|
||||||
assert wiki_page.content
|
assert wiki_page.content
|
||||||
assert !@source_project.wiki.pages.include?(wiki_page)
|
assert !@source_project.wiki.pages.include?(wiki_page)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
parent = @project.wiki.find_page('Parent_page')
|
||||||
|
child1 = @project.wiki.find_page('Child_page_1')
|
||||||
|
child2 = @project.wiki.find_page('Child_page_2')
|
||||||
|
assert_equal parent, child1.parent
|
||||||
|
assert_equal parent, child2.parent
|
||||||
end
|
end
|
||||||
|
|
||||||
should "copy issue categories" do
|
should "copy issue categories" do
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user