Feature #44421 ยป select_default_value_of_required_cf.patch
| 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) |