From b7f4d612cdba7f2dfbb4fd24b5780b40dccf402a Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Fri, 2 Nov 2012 14:41:00 +0100 Subject: [PATCH] Fix default date value display issue as mentioned in issue #1353 --- .../config/fields/types/datetime.rb | 1 + .../edit/rails_admin_config_edit_spec.rb | 2 +- spec/unit/config/fields/date_spec.rb | 21 +++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/rails_admin/config/fields/types/datetime.rb b/lib/rails_admin/config/fields/types/datetime.rb index 5f94e91c4d..b2c72b31a4 100644 --- a/lib/rails_admin/config/fields/types/datetime.rb +++ b/lib/rails_admin/config/fields/types/datetime.rb @@ -52,6 +52,7 @@ def parse_date_string(date_string) end def formatted_date_value + value = bindings[:object].new_record? && self.value.nil? && !self.default_value.nil? ? self.default_value : nil value.nil? ? "" : I18n.l(value, :format => localized_date_format).strip end diff --git a/spec/integration/config/edit/rails_admin_config_edit_spec.rb b/spec/integration/config/edit/rails_admin_config_edit_spec.rb index 01db2ceeb6..39f903dcce 100644 --- a/spec/integration/config/edit/rails_admin_config_edit_spec.rb +++ b/spec/integration/config/edit/rails_admin_config_edit_spec.rb @@ -39,7 +39,7 @@ default_value true end field :date_field do - default_value Date.today.to_s + default_value Date.today end end end diff --git a/spec/unit/config/fields/date_spec.rb b/spec/unit/config/fields/date_spec.rb index 867807ecf6..e9632c1b42 100644 --- a/spec/unit/config/fields/date_spec.rb +++ b/spec/unit/config/fields/date_spec.rb @@ -50,4 +50,25 @@ expect(@object.date_field).to eq(::Date.parse(@time.to_s)) end end + describe 'default value' do + before :each do + RailsAdmin.config FieldTest do + field :date_field do + default_value Date.current + end + end + @object = FactoryGirl.create(:field_test) + @time = ::Time.now.getutc + @field = RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :date_field } + @field.bindings = {:object => @object} + end + it "should contain the default value" do + expect(@field.default_value).to eq(Date.current) + end + it "should propagate to the field formatted_date_value when the object is a new record" do + object = FactoryGirl.build(:field_test) + @field.bindings = {:object => object} + expect(@field.formatted_date_value).to eq( Date.current.strftime("%B %d, %Y") ) + end + end end