From e5822befb0ee100e9ed5bb724303e7ec695bf5b1 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 20 Jun 2008 11:54:44 -0700 Subject: [PATCH] Added the ability to pass a default value into the field_with_budget_observer_and_totals so the system defaults will appear correctly. #1351 --- app/helpers/deliverables_helper.rb | 9 +++++---- app/views/deliverables/_form.html.erb | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/helpers/deliverables_helper.rb b/app/helpers/deliverables_helper.rb index c46fe6f..2dca8cf 100644 --- a/app/helpers/deliverables_helper.rb +++ b/app/helpers/deliverables_helper.rb @@ -3,10 +3,10 @@ module DeliverablesHelper # Helper to generate a form used to calculate the total budget while editing # a Deliverable # TODO Later: Refactor since observers are not used anymore - def field_with_budget_observer_and_totals(form, object, field, percent_field) + def field_with_budget_observer_and_totals(form, object, field, percent_field, default_value='') content_tag(:tr, content_tag(:td, "") + - content_tag(:td, number_or_percent_field(object, field, percent_field, :size => 7)) + + content_tag(:td, number_or_percent_field(object, field, percent_field, default_value, :size => 7)) + content_tag(:td, content_tag(:span, 0, @@ -18,14 +18,15 @@ module DeliverablesHelper end - def number_or_percent_field(object, number_field, percent_field, options) + def number_or_percent_field(object, number_field, percent_field, default_value, options) # Build a text_field by hand named after the number field but with the percent_field and % as the value return text_field_tag('deliverable_' + number_field.to_s, object.read_attribute(percent_field).to_s + "%", options.merge({ :name => "deliverable[#{number_field.to_s}]"})) unless object.read_attribute(percent_field).blank? # Number and fallback with no values - return text_field(:deliverable, number_field, options) + value = object.read_attribute(number_field) || default_value || '' + return text_field(:deliverable, number_field, options.merge({ :value => value})) end # Helper to generate a consistant HTML format for displaying basic data diff --git a/app/views/deliverables/_form.html.erb b/app/views/deliverables/_form.html.erb index cbd69aa..30d8e85 100644 --- a/app/views/deliverables/_form.html.erb +++ b/app/views/deliverables/_form.html.erb @@ -64,9 +64,9 @@ - <%= field_with_budget_observer_and_totals(f, @deliverable, :overhead, :overhead_percent) %> - <%= field_with_budget_observer_and_totals(f, @deliverable, :materials, :materials_percent) %> - <%= field_with_budget_observer_and_totals(f, @deliverable, :profit, :profit_percent) %> + <%= field_with_budget_observer_and_totals(f, @deliverable, :overhead, :overhead_percent, @settings[:budget_non_billable_overhead]) %> + <%= field_with_budget_observer_and_totals(f, @deliverable, :materials, :materials_percent, @settings[:budget_materials]) %> + <%= field_with_budget_observer_and_totals(f, @deliverable, :profit, :profit_percent, @settings[:budget_profit]) %>