Commit b944276e authored by Jean-Philippe Lang's avatar Jean-Philippe Lang Committed by Eric Davis

Fixes progress calculation on gantt (#7838).

Contributed by Etienne Massip.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5236 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 556ae0f2
...@@ -643,10 +643,10 @@ module Redmine ...@@ -643,10 +643,10 @@ module Redmine
end end
if progress if progress
progress_date = start_date + (end_date - start_date) * (progress / 100.0) progress_date = start_date + (end_date - start_date + 1) * (progress / 100.0)
if progress_date > self.date_from && progress_date > start_date if progress_date > self.date_from && progress_date > start_date
if progress_date < self.date_to if progress_date < self.date_to
coords[:bar_progress_end] = progress_date - self.date_from + 1 coords[:bar_progress_end] = progress_date - self.date_from
else else
coords[:bar_progress_end] = self.date_to - self.date_from + 1 coords[:bar_progress_end] = self.date_to - self.date_from + 1
end end
......
...@@ -547,9 +547,9 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase ...@@ -547,9 +547,9 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase
assert_select "div.version.task_done[style*=left:28px]", true, @response.body assert_select "div.version.task_done[style*=left:28px]", true, @response.body
end end
should "Be the total done width of the version" do should "be the total done width of the version" do
@response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
assert_select "div.version.task_done[style*=width:18px]", true, @response.body assert_select "div.version.task_done[style*=width:16px]", true, @response.body
end end
end end
...@@ -707,9 +707,10 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase ...@@ -707,9 +707,10 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase
assert_select "div.task_done[style*=left:28px]", true, @response.body assert_select "div.task_done[style*=left:28px]", true, @response.body
end end
should "Be the total done width of the issue" do should "be the total done width of the issue" do
@response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
assert_select "div.task_done[style*=width:18px]", true, @response.body # 15 days * 4 px * 30% - 2 px for borders = 16 px
assert_select "div.task_done[style*=width:16px]", true, @response.body
end end
should "not be the total done width if the chart starts after issue start date" do should "not be the total done width if the chart starts after issue start date" do
...@@ -717,7 +718,24 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase ...@@ -717,7 +718,24 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase
@response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
assert_select "div.task_done[style*=left:0px]", true, @response.body assert_select "div.task_done[style*=left:0px]", true, @response.body
assert_select "div.task_done[style*=width:10px]", true, @response.body assert_select "div.task_done[style*=width:8px]", true, @response.body
end
context "for completed issue" do
setup do
@issue.done_ratio = 100
end
should "be the total width of the issue" do
@response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
assert_select "div.task_done[style*=width:58px]", true, @response.body
end
should "be the total width of the issue with due_date=start_date" do
@issue.due_date = @issue.start_date
@response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
assert_select "div.task_done[style*=width:2px]", true, @response.body
end
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment