diff --git a/app/models/deliverable.rb b/app/models/deliverable.rb
index fe117f0..3a1898b 100644
--- a/app/models/deliverable.rb
+++ b/app/models/deliverable.rb
@@ -128,6 +128,14 @@ class Deliverable < ActiveRecord::Base
block.call
end
+ def issues_by_status
+ issues.inject({}) {|grouped, issue|
+ grouped[issue.status] ||= []
+ grouped[issue.status] << issue
+ grouped
+ }
+ end
+
def retainer?
type == "RetainerDeliverable"
end
diff --git a/app/views/deliverables/_details_row.html.erb b/app/views/deliverables/_details_row.html.erb
index c15974c..fe2015f 100644
--- a/app/views/deliverables/_details_row.html.erb
+++ b/app/views/deliverables/_details_row.html.erb
@@ -114,24 +114,18 @@
<%= l(:label_issue_status_plural) %> |
- <%# TODO: Release 2 Issue status counters
+
+ <% deliverable.issues_by_status.each do |status, issues| %>
- | Proposed |
- 1 |
-
-
- | On Hold |
- 1 |
-
-
- | Complete |
- 14 |
-
-
- | All |
- 16 |
-
- %>
+ <%= h(status.name) %> |
+ <%= h(issues.length) %> |
+
+ <% end %>
+
+ | <%= l(:label_all).capitalize %> |
+ <%= deliverable.issues.count %> |
+
+
diff --git a/test/integration/contracts_show_test.rb b/test/integration/contracts_show_test.rb
index 2129c7c..3085ac4 100644
--- a/test/integration/contracts_show_test.rb
+++ b/test/integration/contracts_show_test.rb
@@ -391,6 +391,41 @@ class ContractsShowTest < ActionController::IntegrationTest
end
end
+
+ should "show the count of the issues by status for the deliverable" do
+ configure_overhead_plugin
+
+ @manager = User.generate!
+
+ @deliverable1 = FixedDeliverable.generate!(:contract => @contract, :manager => @manager)
+ @status1 = IssueStatus.generate!
+ @status2 = IssueStatus.generate!
+
+ @issue1 = Issue.generate_for_project!(@project, :status => @status1)
+ @issue2 = Issue.generate_for_project!(@project, :status => @status1)
+ @issue3 = Issue.generate_for_project!(@project, :status => @status1)
+ @issue4 = Issue.generate_for_project!(@project, :status => @status2)
+
+ @deliverable1.issues = [@issue1, @issue2, @issue3, @issue4]
+
+ assert_equal 4, @deliverable1.issues.count
+
+ visit_contract_page(@contract)
+ assert_select "table#deliverables" do
+ assert_select "tr" do
+ assert_select "td", :text => /#{@status1}/
+ assert_select "td.number", :text => /3/
+ end
+ assert_select "tr" do
+ assert_select "td", :text => /#{@status2}/
+ assert_select "td.number", :text => /1/
+ end
+ assert_select "tr" do
+ assert_select "td strong", "All"
+ assert_select "td.number", :text => /4/
+ end
+ end
+ end
should "show the current period for a Retainer" do