Similar hack as f43447e33f
This commit is contained in:
Reinier Balt 2008-11-29 15:55:16 +01:00
parent 9147fb887c
commit 9d246f70cd
2 changed files with 18 additions and 7 deletions

View file

@ -779,8 +779,8 @@ class TodosController < ApplicationController
if todo.from_recurring_todo? if todo.from_recurring_todo?
recurring_todo = todo.recurring_todo recurring_todo = todo.recurring_todo
# check if there are active todos belonging to this recurring todo. # check if there are active todos belonging to this recurring todo. only
# only add new one if all active todos are completed # add new one if all active todos are completed
if recurring_todo.todos.active.count == 0 if recurring_todo.todos.active.count == 0
# check for next todo either from the due date or the show_from date # check for next todo either from the due date or the show_from date

View file

@ -476,7 +476,18 @@ class RecurringTodo < ActiveRecord::Base
when 0 # specific day of the month when 0 # specific day of the month
if start.mday >= day if start.mday >= day
# there is no next day n in this month, search in next month # there is no next day n in this month, search in next month
start += n.months #
# start += n.months
#
# The above seems to not work. Fiddle with timezone. Looks like we hit a
# bug in rails here where 2008-12-01 +0100 plus 1.month becomes
# 2008-12-31 +0100. For now, just calculate in UTC and convert back to
# local timezone.
#
# TODO: recheck if future rails versions have this problem too
start = Time.utc(start.year, start.month, start.day)+n.months
start = Time.zone.local(start.year, start.month, start.day)
# go back to day # go back to day
end end
return Time.zone.local(start.year, start.month, day) return Time.zone.local(start.year, start.month, day)