Adds subtasking (#443) including:

* priority, start/due dates, progress, estimate, spent time roll-up to parent issues
* descendant issues tree displayed on the issue view with context menu support
* issue tree display on the gantt chart
* issue tree copy on project copy
* unlimited nesting

Defining subtasks requires the new permission 'Manage subtasks'.
Subtasks can not belong to a different project than the parent task.

Implementation is based on scoped nested sets for fast reads and updates.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3573 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang committed 2010-03-13 14:56:49 +00:00
1 parent e109c9b6b6
commit 8e3d1b694a
28 files changed
+855 -93

No files matched your search

+11 -1
View File
@@ -557,9 +557,12 @@ class Project < ActiveRecord::Base
# value. Used to map the two togeather for issue relations.
issues_map = {}
project.issues.each do |issue|
# Get issues sorted by root_id, lft so that parent issues
# get copied before their children
project.issues.find(:all, :order => 'root_id, lft').each do |issue|
new_issue = Issue.new
new_issue.copy_from(issue)
new_issue.project = self
# Reassign fixed_versions by name, since names are unique per
# project and the versions for self are not yet saved
if issue.fixed_version
@@ -570,6 +573,13 @@ class Project < ActiveRecord::Base
if issue.category
new_issue.category = self.issue_categories.select {|c| c.name == issue.category.name}.first
end
# Parent issue
if issue.parent_id
if copied_parent = issues_map[issue.parent_id]
new_issue.parent_issue_id = copied_parent.id
end
end
self.issues << new_issue
issues_map[issue.id] = new_issue
end