diff --git a/app/controllers/deliverables_controller.rb b/app/controllers/deliverables_controller.rb index 61567d1..9358b9a 100644 --- a/app/controllers/deliverables_controller.rb +++ b/app/controllers/deliverables_controller.rb @@ -28,7 +28,8 @@ class DeliverablesController < InheritedResources::Base def show if show_partial? - render :partial => 'deliverables/details_row', :locals => {:contract => @contract, :deliverable => @contract.deliverables.find(params[:id])} + @period = params[:period] + render :partial => 'deliverables/details_row', :locals => {:contract => @contract, :deliverable => @contract.deliverables.find(params[:id]), :period => @period} else redirect_to contract_url(@project, @contract) end diff --git a/app/views/deliverables/_details_row.html.erb b/app/views/deliverables/_details_row.html.erb index ffa832e..4cdc03a 100644 --- a/app/views/deliverables/_details_row.html.erb +++ b/app/views/deliverables/_details_row.html.erb @@ -1,3 +1,5 @@ +<% period ||= '' %> +
@@ -13,7 +15,7 @@ <% if deliverable.retainer? %>
- <%= retainer_period_options(deliverable) %>
@@ -50,14 +52,14 @@ Labor - <%= h(format_value_field_for_contracts(deliverable.labor_budget_spent)) %> - <%= h(format_value_field_for_contracts(deliverable.labor_budget_total)) %> + <%= h(format_value_field_for_contracts(deliverable.labor_budget_spent)) %> + <%= h(format_value_field_for_contracts(deliverable.labor_budget_total)) %> TODO: Release 2 / TODO hrs Overhead - <%= h(format_value_field_for_contracts(deliverable.overhead_spent)) %> - <%= h(format_value_field_for_contracts(deliverable.overhead_budget_total)) %> + <%= h(format_value_field_for_contracts(deliverable.overhead_spent)) %> + <%= h(format_value_field_for_contracts(deliverable.overhead_budget_total)) %> TODO: Release 2 / TODO hrs <%# TODO: Release 2, Fixed %> @@ -70,8 +72,8 @@ Total: - <%= h(format_value_field_for_contracts(deliverable.total_spent)) %> - <%= h(format_value_field_for_contracts(deliverable.total)) %> + <%= h(format_value_field_for_contracts(deliverable.total_spent)) %> + <%= h(format_value_field_for_contracts(deliverable.total)) %> TODO: Release 2 diff --git a/test/integration/deliverable_details_test.rb b/test/integration/deliverable_details_test.rb index 6dd33c9..295c4e0 100644 --- a/test/integration/deliverable_details_test.rb +++ b/test/integration/deliverable_details_test.rb @@ -5,9 +5,13 @@ class DeliverableDetailsShowTest < ActionController::IntegrationTest def setup @project = Project.generate!(:identifier => 'main').reload - @contract = Contract.generate!(:project => @project) + @contract = Contract.generate!(:project => @project, :billable_rate => 10) @manager = User.generate! - @deliverable1 = FixedDeliverable.generate!(:contract => @contract, :manager => @manager) + @deliverable1 = RetainerDeliverable.spawn(:contract => @contract, :manager => @manager, :title => "Retainer", :start_date => '2010-01-01', :end_date => '2010-03-31') + @deliverable1.labor_budgets << LaborBudget.spawn(:budget => 100, :hours => 10) + @deliverable1.overhead_budgets << OverheadBudget.spawn(:budget => 200, :hours => 10) + + @deliverable1.save! end context "for a JS request" do @@ -21,5 +25,26 @@ class DeliverableDetailsShowTest < ActionController::IntegrationTest end + should "filter the details based on the period" do + assert_equal 300, @deliverable1.labor_budget_total + assert_equal 600, @deliverable1.overhead_budget_total + assert_equal 300, @deliverable1.total # Contract rate * 30 hours (labor) + + visit "/projects/#{@project.id}/contracts/#{@contract.id}/deliverables/#{@deliverable1.id}", :get, {:format => 'js', :as => 'deliverable_details_row', :period => '2010-02'} + + puts response.body + assert_response :success + assert_select ".deliverable_details_outer_wrapper_#{@deliverable1.id}" do + assert_select "td.labor_budget_total", '100' + assert_select "td.overhead_budget_total", '200' + assert_select "td.total", '100' + + assert_select "select.retainer_period_change" do + assert_select "option[selected=selected]", "Feburary 2010" + end + end + + end + end end