fix for the two issues in #852

* the end date is prefilled with an incorrect formatted date
* if the radio for ends_on is not selected, but a date is entered, tracks incorrectly behaves as if ends_on was checked
This commit is contained in:
Reinier Balt 2009-04-01 13:51:36 +02:00
parent f4f2573f98
commit 239b38cb15
4 changed files with 6 additions and 5 deletions

View file

@ -596,7 +596,7 @@ class RecurringTodo < ActiveRecord::Base
unless self.number_of_occurences.nil?
return self.occurences_count < self.number_of_occurences
else
if self.end_date.nil?
if self.end_date.nil? || self.ends_on == 'no_end_date'
return true
else
case self.target

View file

@ -78,7 +78,7 @@
<label for="recurring_todo[ends_on]">Ends on:</label><br/>
<%= radio_button_tag('recurring_todo[ends_on]', 'no_end_date', true)%> No end date<br/>
<%= radio_button_tag('recurring_todo[ends_on]', 'ends_on_number_of_times')%> Ends after <%= text_field( :recurring_todo, :number_of_occurences, "size" => 3, "tabindex" => 7) %> times<br/>
<%= radio_button_tag('recurring_todo[ends_on]', 'ends_on_end_date')%> Ends on <%= text_field(:recurring_todo, :end_date, "size" => 12, "class" => "Date", "onfocus" => "Calendar.setup", "tabindex" => 8, "autocomplete" => "off") %><br/>
<%= radio_button_tag('recurring_todo[ends_on]', 'ends_on_end_date')%> Ends on <%= text_field(:recurring_todo, :end_date, "size" => 12, "class" => "Date", "onfocus" => "Calendar.setup", "tabindex" => 8, "autocomplete" => "off", "value" => "") %><br/>
</div></div>
<div id="recurring_daily" style="display:block">
<label>Settings for daily recurring actions</label><br/>

View file

@ -155,7 +155,7 @@ class RecurringTodosControllerTest < ActionController::TestCase
"recurring_period"=>"yearly",
"recurring_show_days_before"=>"0",
"recurring_target"=>"due_date",
"start_from"=>"",
"start_from"=>"1/10/2012", # adjust after 2012
"weekly_every_x_week"=>"1",
"weekly_return_monday"=>"w",
"yearly_day_of_week"=>"0",
@ -176,8 +176,8 @@ class RecurringTodosControllerTest < ActionController::TestCase
new_todo = Todo.find_by_description("new recurring pattern")
assert !new_todo.nil?
# the date should be 29 march 2009
assert_equal Time.zone.local(2009,3,29), new_todo.due
# the date should be 31 march 2013
assert_equal Time.zone.local(2013,3,31), new_todo.due
end
end

View file

@ -81,6 +81,7 @@ class RecurringTodoTest < Test::Rails::TestCase
assert_equal true, @every_day.has_next_todo(@in_three_days)
assert_equal true, @every_day.has_next_todo(@in_four_days)
@every_day.end_date = @in_four_days
@every_day.ends_on = 'ends_on_end_date'
assert_equal false, @every_day.has_next_todo(@in_four_days)
end