@ -61,6 +61,10 @@ class CustomValue < ApplicationRecord
end
def default?
value == custom_field.default_value
protected
def validate_presence_of_required_value
@ -256,6 +256,9 @@ module Redmine
# Skip when the old value equals the new value (no change happened).
next cfv_changes if value_was == cfv.value
# Skip when the new value is the default value
next cfv_changes if value_was.nil? && cfv.default?
cfv_changes.merge("custom_field_#{cfv.custom_field_id}": [value_was, cfv.value])
@ -135,5 +135,16 @@ describe WorkPackage, 'acts_as_customizable' do
before do
setup_custom_field(custom_field)
context 'with a default value' do
custom_field.update! default_value: 'foobar'
model_instance.custom_values.destroy_all
it 'returns no changes' do
expect(model_instance.custom_field_changes).to be_empty