##// END OF EJS Templates
Show subproject versions on the Roadmap....
Eric Davis -
r3646:f3cc84b3437a
parent child
Show More
@@ -295,7 +295,9 class ProjectsController < ApplicationController
295 295 @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1')
296 296 project_ids = @with_subprojects ? @project.self_and_descendants.collect(&:id) : [@project.id]
297 297
298 @versions = @project.shared_versions.sort
298 @versions = @project.shared_versions || []
299 @versions += @project.rolled_up_versions.visible if @with_subprojects
300 @versions = @versions.uniq.sort
299 301 @versions.reject! {|version| version.closed? || version.completed? } unless params[:completed]
300 302
301 303 @issues_by_version = {}
@@ -336,6 +336,13 class Project < ActiveRecord::Base
336 336 end
337 337 end
338 338 end
339
340 # Returns a scope of the Versions on subprojects
341 def rolled_up_versions
342 @rolled_up_versions ||=
343 Version.scoped(:include => :project,
344 :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status = #{STATUS_ACTIVE}", lft, rgt])
345 end
339 346
340 347 # Returns a scope of the Versions used by the project
341 348 def shared_versions
@@ -364,12 +364,14 class ProjectsControllerTest < ActionController::TestCase
364 364 end
365 365
366 366 def test_roadmap_showing_subprojects_versions
367 @subproject_version = Version.generate!(:project => Project.find(3))
367 368 get :roadmap, :id => 1, :with_subprojects => 1
368 369 assert_response :success
369 370 assert_template 'roadmap'
370 371 assert_not_nil assigns(:versions)
371 # Version on subproject appears
372 assert assigns(:versions).include?(Version.find(4))
372
373 assert assigns(:versions).include?(Version.find(4)), "Shared version not found"
374 assert assigns(:versions).include?(@subproject_version), "Subproject version not found"
373 375 end
374 376 def test_project_activity
375 377 get :activity, :id => 1, :with_subprojects => 0
@@ -360,6 +360,59 class ProjectTest < ActiveSupport::TestCase
360 360
361 361 assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)
362 362 end
363
364 context "#rolled_up_versions" do
365 setup do
366 @project = Project.generate!
367 @parent_version_1 = Version.generate!(:project => @project)
368 @parent_version_2 = Version.generate!(:project => @project)
369 end
370
371 should "include the versions for the current project" do
372 assert_same_elements [@parent_version_1, @parent_version_2], @project.rolled_up_versions
373 end
374
375 should "include versions for a subproject" do
376 @subproject = Project.generate!
377 @subproject.set_parent!(@project)
378 @subproject_version = Version.generate!(:project => @subproject)
379
380 assert_same_elements [
381 @parent_version_1,
382 @parent_version_2,
383 @subproject_version
384 ], @project.rolled_up_versions
385 end
386
387 should "include versions for a sub-subproject" do
388 @subproject = Project.generate!
389 @subproject.set_parent!(@project)
390 @sub_subproject = Project.generate!
391 @sub_subproject.set_parent!(@subproject)
392 @sub_subproject_version = Version.generate!(:project => @sub_subproject)
393
394 @project.reload
395
396 assert_same_elements [
397 @parent_version_1,
398 @parent_version_2,
399 @sub_subproject_version
400 ], @project.rolled_up_versions
401 end
402
403
404 should "only check active projects" do
405 @subproject = Project.generate!
406 @subproject.set_parent!(@project)
407 @subproject_version = Version.generate!(:project => @subproject)
408 assert @subproject.archive
409
410 @project.reload
411
412 assert !@subproject.active?
413 assert_same_elements [@parent_version_1, @parent_version_2], @project.rolled_up_versions
414 end
415 end
363 416
364 417 def test_shared_versions_none_sharing
365 418 p = Project.find(5)
General Comments 0
You need to be logged in to leave comments. Login now