diff --git a/app/helpers/contracts_helper.rb b/app/helpers/contracts_helper.rb index a7bfb94..ebe224e 100644 --- a/app/helpers/contracts_helper.rb +++ b/app/helpers/contracts_helper.rb @@ -85,4 +85,15 @@ module ContractsHelper def format_value_field_for_contracts(value) number_with_precision(value, :precision => Contract::ViewPrecision, :delimiter => ',') end + + def retainer_period_options(deliverable) + options = [] + options << content_tag(:option, l(:label_all).capitalize, :value => '') + + deliverable.months.collect do |month| + options << content_tag(:option, month.strftime("%B %Y"), :value => month.strftime("%Y-%m")) + end + + options + end end diff --git a/app/views/contracts/show.html.erb b/app/views/contracts/show.html.erb index 52aec45..78f8d6d 100644 --- a/app/views/contracts/show.html.erb +++ b/app/views/contracts/show.html.erb @@ -122,8 +122,8 @@ <% if deliverable.retainer? %>
diff --git a/test/integration/contracts_show_test.rb b/test/integration/contracts_show_test.rb index ef882af..08ea047 100644 --- a/test/integration/contracts_show_test.rb +++ b/test/integration/contracts_show_test.rb @@ -226,4 +226,23 @@ class ContractsShowTest < ActionController::IntegrationTest end end + + should "show a selector for changing the currently shown Retainer's period" do + @manager = User.generate! + @retainer_deliverable = RetainerDeliverable.generate!(:contract => @contract, :manager => @manager, :title => "Retainer", :start_date => '2010-01-01', :end_date => '2010-03-31') + + visit_contract_page(@contract) + + assert_select "table#deliverables" do + assert_select "#deliverable_details_#{@retainer_deliverable.id}" do + assert_select "select#retainer_period_change_#{@retainer_deliverable.id}" do + assert_select "option", /All/ + assert_select "option", /January 2010/ + assert_select "option", /February 2010/ + assert_select "option", /March 2010/ + end + end + end + + end end