[#4181] Add a total field to deliverables.
This commit is contained in:
@@ -16,6 +16,14 @@ class Deliverable < ActiveRecord::Base
|
||||
''
|
||||
end
|
||||
|
||||
def total=(v)
|
||||
if v.is_a? String
|
||||
write_attribute(:total, v.gsub(/[$ ,]/, ''))
|
||||
else
|
||||
write_attribute(:total, v)
|
||||
end
|
||||
end
|
||||
|
||||
if Rails.env.test?
|
||||
generator_for :title, :method => :next_title
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
<%= form.input :start_date, :as => :string, :input_html => {:size => 10}, :hint => calendar_for('deliverable_start_date') %>
|
||||
<%= form.input :end_date, :as => :string, :input_html => {:size => 10}, :hint => calendar_for('deliverable_end_date') %>
|
||||
<%= form.input :notes, :input_html => {:class => 'wiki-edit', :rows => '5'} %>
|
||||
|
||||
<%= form.input :total, :input_html => {:size => 10} %>
|
||||
<% end %>
|
||||
<% form.buttons do %>
|
||||
<%= form.commit_button :label => l(:button_save) %>
|
||||
|
||||
@@ -26,4 +26,4 @@ en:
|
||||
field_labor: Labor
|
||||
field_overhead: Overhead
|
||||
field_fixed: Fixed
|
||||
|
||||
field_total: Total
|
||||
|
||||
11
db/migrate/003_add_total_to_deliverables.rb
Normal file
11
db/migrate/003_add_total_to_deliverables.rb
Normal file
@@ -0,0 +1,11 @@
|
||||
class AddTotalToDeliverables < ActiveRecord::Migration
|
||||
def self.up
|
||||
add_column :deliverables, :total, :decimal, :precision => 15, :scale => 2
|
||||
|
||||
add_index :deliverables, :total
|
||||
end
|
||||
|
||||
def self.down
|
||||
remove_column :deliverables, :total
|
||||
end
|
||||
end
|
||||
@@ -56,6 +56,7 @@ class DeliverablesNewTest < ActionController::IntegrationTest
|
||||
fill_in "Start", :with => '2010-01-01'
|
||||
fill_in "End Date", :with => '2010-12-31'
|
||||
fill_in "Notes", :with => 'Some notes on the deliverable'
|
||||
fill_in "Total", :with => '1,000.00'
|
||||
|
||||
click_button "Save"
|
||||
|
||||
@@ -69,5 +70,6 @@ class DeliverablesNewTest < ActionController::IntegrationTest
|
||||
assert_equal '2010-01-01', @deliverable.start_date.to_s
|
||||
assert_equal '2010-12-31', @deliverable.end_date.to_s
|
||||
assert_equal @manager, @deliverable.manager
|
||||
assert_equal 1000.0, @deliverable.total.to_f
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,4 +7,27 @@ class DeliverableTest < ActiveSupport::TestCase
|
||||
should_validate_presence_of :title
|
||||
should_validate_presence_of :type
|
||||
should_validate_presence_of :manager
|
||||
|
||||
context "#total=" do
|
||||
should "strip dollar signs when writing" do
|
||||
d = Deliverable.new
|
||||
d.total = '$100.00'
|
||||
|
||||
assert_equal 100.00, d.total.to_f
|
||||
end
|
||||
|
||||
should "strip commas when writing" do
|
||||
d = Deliverable.new
|
||||
d.total = '20,100.00'
|
||||
|
||||
assert_equal 20100.00, d.total.to_f
|
||||
end
|
||||
|
||||
should "strip spaces when writing" do
|
||||
d = Deliverable.new
|
||||
d.total = '20 100.00'
|
||||
|
||||
assert_equal 20100.00, d.total.to_f
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user