Project

General

Profile

Feature #44421 ยป select_default_value_of_required_cf.patch

Kenta Kumojima, 2026-09-04 16:03

View differences:

lib/redmine/field_format.rb
652 652
            blank_option = view.content_tag('option', ' '.html_safe, :value => '')
653 653
          end
654 654
        end
655
        cf = custom_value.custom_field
656
        if !cf.multiple? && cf.is_required? && cf.default_value.present? && custom_value.value.blank?
657
          value = cf.default_value
658
        else
659
          value = custom_value.value
660
        end
655 661
        options_tags =
656 662
          blank_option +
657
           view.options_for_select(possible_custom_value_options(custom_value), custom_value.value)
663
           view.options_for_select(possible_custom_value_options(custom_value), value)
658 664
        s =
659 665
          view.select_tag(
660 666
            tag_name, options_tags,
test/unit/lib/redmine/field_format/bool_format_test.rb
62 62
    tag = field.format.edit_tag(self, 'abc', 'xyz', value)
63 63
    assert_select_in tag, 'select[name=xyz]', 1
64 64
  end
65

  
66
  def test_edit_tag_should_select_defalut_value_without_custom_value_when_required
67
    field = IssueCustomField.new(:field_format => 'bool', :is_required => true, :default_value => '0')
68
    value = CustomFieldValue.new(:custom_field => field, :customized => Issue.new, :value => nil)
69

  
70
    tag = field.format.edit_tag(self, 'id', 'name', value)
71
    assert_select_in tag, 'select' do
72
      assert_select 'option[selected=selected]', 1
73
      assert_select 'option[value=0][selected=selected]', :text => 'No'
74
    end
75
  end
76

  
77
  def test_edit_tag_should_select_defalut_value_without_custom_value_when_not_required
78
    field = IssueCustomField.new(:field_format => 'bool', :is_required => false, :default_value => '0')
79
    value = CustomFieldValue.new(:custom_field => field, :customized => Issue.new, :value => nil)
80

  
81
    tag = field.format.edit_tag(self, 'id', 'name', value)
82
    assert_select_in tag, 'select' do
83
      assert_select 'option[selected=selected]', 0
84
    end
85
  end
65 86
end
test/unit/lib/redmine/field_format/list_format_test.rb
81 81
    end
82 82
  end
83 83

  
84
  def test_edit_tag_should_select_defalut_value_without_custom_value_when_required
85
    field = IssueCustomField.new(:field_format => 'list', :possible_values => ['Foo', 'Bar'], :is_required => true, :default_value => 'Bar')
86
    value = CustomFieldValue.new(:custom_field => field, :customized => Issue.new, :value => nil)
87

  
88
    tag = field.format.edit_tag(self, 'id', 'name', value)
89
    assert_select_in tag, 'select' do
90
      assert_select 'option[selected=selected]', 1
91
      assert_select 'option[value=Bar][selected=selected]', :text => 'Bar'
92
    end
93
  end
94

  
95
  def test_edit_tag_should_select_defalut_value_without_custom_value_when_not_required
96
    field = IssueCustomField.new(:field_format => 'list', :possible_values => ['Foo', 'Bar'], :is_required => false, :default_value => 'Bar')
97
    value = CustomFieldValue.new(:custom_field => field, :customized => Issue.new, :value => nil)
98

  
99
    tag = field.format.edit_tag(self, 'id', 'name', value)
100
    assert_select_in tag, 'select' do
101
      assert_select 'option[selected=selected]', 0
102
    end
103
  end
104

  
84 105
  def test_edit_tag_with_multiple_should_select_current_values
85 106
    field = IssueCustomField.new(:field_format => 'list', :possible_values => ['Foo', 'Bar', 'Baz'], :is_required => false,
86 107
      :multiple => true)
    (1-1/1)