Feature #25035 » add_current_date.patch
app/models/custom_field.rb | ||
---|---|---|
103 | 103 |
end |
104 | 104 |
end |
105 | 105 | |
106 |
def default_value |
|
107 |
if self.default_value_is_current_date? |
|
108 |
User.current.today.to_s |
|
109 |
else |
|
110 |
self[:default_value] |
|
111 |
end |
|
112 |
end |
|
113 | ||
114 |
def default_value_is_current_date? |
|
115 |
self.field_format == 'date' && self[:default_value] == 'current_date' |
|
116 |
end |
|
117 | ||
106 | 118 |
def set_searchable |
107 | 119 |
# make sure these fields are not searchable |
108 | 120 |
self.searchable = false unless format.class.searchable_supported |
app/views/custom_fields/formats/_date.html.erb | ||
---|---|---|
1 |
<p><%= f.date_field(:default_value, :value => @custom_field.default_value, :size => 10) %></p> |
|
2 |
<%= calendar_for('custom_field_default_value') %> |
|
1 |
<p> |
|
2 |
<%= f.label(:default_value) %> |
|
3 |
<label class="block"> |
|
4 |
<%= radio_button_tag :default_value_type, 'specific_date', @custom_field.default_value.present? && !@custom_field.default_value_is_current_date?, {:checked => true, :data => {:disables => 'input.custom_field_default_value_current_date', :enables => 'input.custom_field_default_value_specific_date'}} %> |
|
5 |
<%= l(:field_specific_date) %> |
|
6 |
</label> |
|
7 |
<%= date_field_tag 'custom_field[default_value]', !@custom_field.default_value_is_current_date? && @custom_field.default_value, :size => 10, :label => false, :id => nil, :class => 'custom_field_default_value_specific_date' %> |
|
8 |
<%= f.hidden_field :default_value, :value => 'current_date', :disabled => @custom_field.default_value != 'current_date', :class => 'custom_field_default_value_current_date' %> |
|
9 |
<%= calendar_for('custom_field_default_value') %> |
|
10 |
<label class="block"> |
|
11 |
<%= radio_button_tag :default_value_type, 'current_date', @custom_field.default_value.present? && @custom_field.default_value_is_current_date?, {:data => {:disables => 'input.custom_field_default_value_specific_date', :enables => 'input.custom_field_default_value_current_date'}} %> |
|
12 |
<%= l(:field_current_date) %> |
|
13 |
</label> |
|
14 |
</p> |
|
3 | 15 |
<p><%= f.text_field :url_pattern, :size => 50, :label => :label_link_values_to %></p> |
config/locales/en.yml | ||
---|---|---|
378 | 378 |
field_full_width_layout: Full width layout |
379 | 379 |
field_digest: Checksum |
380 | 380 |
field_default_assigned_to: Default assignee |
381 |
field_specific_date: Specific date |
|
382 |
field_current_date: Current date |
|
381 | 383 | |
382 | 384 |
setting_app_title: Application title |
383 | 385 |
setting_welcome_text: Welcome text |
lib/redmine/field_format.rb | ||
---|---|---|
534 | 534 |
end |
535 | 535 | |
536 | 536 |
def validate_single_value(custom_field, value, customized=nil) |
537 |
if value =~ /^\d{4}-\d{2}-\d{2}$/ && (value.to_date rescue false)
|
|
537 |
if (value =~ /^\d{4}-\d{2}-\d{2}$/ && (value.to_date rescue false)) || value == 'current_date'
|
|
538 | 538 |
[] |
539 | 539 |
else |
540 | 540 |
[::I18n.t('activerecord.errors.messages.not_a_date')] |
test/unit/custom_field_test.rb | ||
---|---|---|
340 | 340 |
assert_equal 12.5, field.cast_value('+12.5') |
341 | 341 |
assert_equal -12.5, field.cast_value('-12.5') |
342 | 342 |
end |
343 | ||
344 |
def test_default_value_should_return_today_if_default_is_current_date |
|
345 |
field = CustomField.new(:field_format => 'date', default_value: 'current_date') |
|
346 |
assert_equal field.default_value, User.current.today.to_s |
|
347 |
end |
|
348 | ||
349 |
def test_default_value_is_current_date? |
|
350 |
field = CustomField.new(:field_format => 'date', default_value: 'current_date') |
|
351 |
assert field.default_value_is_current_date? |
|
352 | ||
353 |
field = CustomField.new(:field_format => 'date', default_value: User.current.today.to_s) |
|
354 |
assert_not field.default_value_is_current_date? |
|
355 |
end |
|
343 | 356 |
end |
- « Previous
- 1
- 2
- Next »