diff --git a/project_inheritance/app/controllers/projects_controller.rb b/project_inheritance/app/controllers/projects_controller.rb index 2ae742dfa..da2edb784 100644 --- a/project_inheritance/app/controllers/projects_controller.rb +++ b/project_inheritance/app/controllers/projects_controller.rb @@ -330,8 +330,12 @@ class ProjectsController < ApplicationController def roadmap @trackers = @project.trackers.find(:all, :conditions => ["is_in_roadmap=?", true]) retrieve_selected_tracker_ids(@trackers) - @versions = @project.versions.sort + # Subprojects roadmap shows parent project versions (unless versions inheritance was disabled in settings) + @versions = @project.assignable_versions + # Parent project roadmap shows versions of all subprojects + @versions += Version.find(:all, :conditions => {:project_id => @project.child_ids}) unless @project.child_ids.empty? @versions = @versions.select {|v| !v.completed? } unless params[:completed] + @versions.sort! end def activity diff --git a/project_inheritance/app/views/projects/roadmap.rhtml b/project_inheritance/app/views/projects/roadmap.rhtml index 4dc94b8c6..3b0402228 100644 --- a/project_inheritance/app/views/projects/roadmap.rhtml +++ b/project_inheritance/app/views/projects/roadmap.rhtml @@ -11,8 +11,8 @@ <%= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %> <% issues = version.fixed_issues.find(:all, - :include => [:status, :tracker], - :conditions => ["tracker_id in (#{@selected_tracker_ids.join(',')})"], + :include => [:status, :tracker, :project], + :conditions => ["#{Issue.table_name}.tracker_id IN (?) AND (#{Project.table_name}.id = ? OR #{Project.table_name}.parent_id = ?)", @selected_tracker_ids, @project.id, @project.id], :order => "#{Tracker.table_name}.position") unless @selected_tracker_ids.empty? issues ||= [] %>