From 3e30629d44c9436360f735e257d6ec7bfb46f5c7 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Mon, 16 Aug 2010 14:47:47 -0700 Subject: [PATCH] [#4420] Add the frequency field for Retainers to the Model and View. --- app/models/retainer_deliverable.rb | 17 +++++++++++++++++ app/views/deliverables/_form.html.erb | 7 ++++++- config/locales/en.yml | 3 +++ test/unit/retainer_deliverable_test.rb | 5 +++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/app/models/retainer_deliverable.rb b/app/models/retainer_deliverable.rb index 53806bf..04563fd 100644 --- a/app/models/retainer_deliverable.rb +++ b/app/models/retainer_deliverable.rb @@ -5,4 +5,21 @@ class RetainerDeliverable < HourlyDeliverable unloadable + # Associations + + # Validations + ValidFrequencies = ["monthly", "quarterly"] + validates_inclusion_of :frequency, :in => ValidFrequencies, :allow_nil => true, :allow_blank => true + + # Accessors + + # Callbacks + + def short_type + 'R' + end + + def self.frequencies_to_select + ValidFrequencies.collect {|f| [l("text_#{f}"), f]} + end end diff --git a/app/views/deliverables/_form.html.erb b/app/views/deliverables/_form.html.erb index 5976293..22f015d 100644 --- a/app/views/deliverables/_form.html.erb +++ b/app/views/deliverables/_form.html.erb @@ -2,7 +2,12 @@ <% form.inputs :name => l(:text_deliverable_details_legend) do %> <%= form.input :title, :required => true %> <% if resource.new_record? %> - <%= form.input(:type, :required => true, :as => :select, :collection => [["Fixed", "FixedDeliverable"],["Hourly", "HourlyDeliverable"]], :include_blank => false, :input_html => {:class => 'type'}) %> +
  • + <%= form.label(:type, l(:field_type)) %> + <%= form.select(:type, [["Fixed", "FixedDeliverable"], ["Hourly", "HourlyDeliverable"], ["Retainer", "RetainerDeliverable"]], {:include_blank => false}, {:class => 'type'}) %> + + <%= form.select(:frequency, RetainerDeliverable.frequencies_to_select, :include_blank => false) %> +
  • <% else %> <%= form.input :type, :as => :hidden, :class => 'type' %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index c4dd024..9b700f5 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -60,3 +60,6 @@ en: field_deliverable_title: "Deliverable" field_contract_name: "Contract" field_contract: "Contract" + field_frequency: "Frequency" + text_monthly: "Monthly" + text_quarterly: "Quarterly" diff --git a/test/unit/retainer_deliverable_test.rb b/test/unit/retainer_deliverable_test.rb index c2a25f1..45112de 100644 --- a/test/unit/retainer_deliverable_test.rb +++ b/test/unit/retainer_deliverable_test.rb @@ -4,4 +4,9 @@ class RetainerDeliverableTest < ActiveSupport::TestCase should "be a subclass of HourlyDeliverable" do assert_equal HourlyDeliverable, RetainerDeliverable.superclass end + + context "#frequency" do + should_allow_values_for(:frequency, nil, '', 'monthly', 'quarterly') + should_not_allow_values_for(:frequency, 'anything', 'else', 'weekly') + end end