A few fixes after more thorough review.

This commit is contained in:
Eric Allen 2008-09-20 17:34:22 -07:00
parent 778427405a
commit f52a2eafa8
7 changed files with 13 additions and 13 deletions

View file

@ -173,7 +173,7 @@ class ApplicationController < ActionController::Base
if show_from_date.nil? if show_from_date.nil?
todo.show_from=nil todo.show_from=nil
else else
todo.show_from = show_from_date.to_time < Time.now.utc ? nil : show_from_date todo.show_from = show_from_date < Time.now.utc ? nil : show_from_date
end end
saved = todo.save saved = todo.save

View file

@ -21,7 +21,7 @@ class Preference < ActiveRecord::Base
def parse_date(s) def parse_date(s)
return nil if s.blank? return nil if s.blank?
Date.strptime(s, date_format) user.at_midnight(Date.strptime(s, date_format))
end end
end end

View file

@ -71,7 +71,7 @@ class User < ActiveRecord::Base
:conditions => [ 'state = ?', 'deferred' ], :conditions => [ 'state = ?', 'deferred' ],
:order => 'show_from ASC, todos.created_at DESC' do :order => 'show_from ASC, todos.created_at DESC' do
def find_and_activate_ready def find_and_activate_ready
find(:all, :conditions => ['show_from <= ?', proxy_owner.date ]).collect { |t| t.activate! } find(:all, :conditions => ['show_from <= ?', Time.now ]).collect { |t| t.activate! }
end end
end end
has_many :completed_todos, has_many :completed_todos,

View file

@ -6,15 +6,14 @@ class ChangeDatesToDatetimes < ActiveRecord::Migration
change_column :recurring_todos, :end_date, :datetime change_column :recurring_todos, :end_date, :datetime
User.all(:include => [:todos, :recurring_todos]).each do |user| User.all(:include => [:todos, :recurring_todos]).each do |user|
zone = TimeZone[user.prefs.time_zone]
user.todos.each do |todo| user.todos.each do |todo|
todo.update_attribute(:show_from, user.at_midnight(todo.show_from)) unless d.nil? todo.update_attribute(:show_from, user.at_midnight(todo.show_from)) unless todo.show_from.nil?
todo.update_attribute(:due, user.at_midnight(todo.due)) unless d.nil? todo.update_attribute(:due, user.at_midnight(todo.due)) unless todo.due.nil?
end end
user.recurring_todos.each do |todo| user.recurring_todos.each do |todo|
todo.update_attribute(:start_from, user.at_midnight(todo.start_from)) unless d.nil? todo.update_attribute(:start_from, user.at_midnight(todo.start_from)) unless todo.start_from.nil?
todo.update_attribute(:end_date, user.at_midnight(todo.end_date)) unless d.nil? todo.update_attribute(:end_date, user.at_midnight(todo.end_date)) unless todo.end_date.nil?
end end
end end
end end

View file

@ -185,8 +185,9 @@ describe User do
user.save! user.save!
user.create_preference user.create_preference
user.preference.update_attribute('time_zone', 'Pacific Time (US & Canada)') user.preference.update_attribute('time_zone', 'Pacific Time (US & Canada)')
# Time.zone = 'Pacific Time (US & Canada)'
Time.stub!(:now).and_return(Time.new.end_of_day - 20.minutes) Time.stub!(:now).and_return(Time.new.end_of_day - 20.minutes)
todo = user.todos.build(:description => 'test task', :context => context, :show_from => user.date + 1) todo = user.todos.build(:description => 'test task', :context => context, :show_from => user.date + 1.days)
todo.save! todo.save!
user.deferred_todos.find_and_activate_ready user.deferred_todos.find_and_activate_ready

View file

@ -20,7 +20,7 @@ class PreferenceTest < Test::Rails::TestCase
end end
def test_parse_date def test_parse_date
assert_equal Date.new(2007, 5, 20).to_s, @admin_user.preference.parse_date('20/5/2007').to_s assert_equal @admin_user.at_midnight(Date.new(2007, 5, 20)).to_s, @admin_user.preference.parse_date('20/5/2007').to_s
end end
def test_parse_date_returns_nil_if_string_is_empty def test_parse_date_returns_nil_if_string_is_empty

View file

@ -235,7 +235,7 @@ class UserTest < Test::Rails::TestCase
def test_find_and_activate_deferred_todos_that_are_ready def test_find_and_activate_deferred_todos_that_are_ready
assert_equal 1, @admin_user.deferred_todos.count assert_equal 1, @admin_user.deferred_todos.count
@admin_user.deferred_todos[0].show_from = @admin_user.date @admin_user.deferred_todos[0].show_from = Time.now - 5.seconds
@admin_user.deferred_todos[0].save @admin_user.deferred_todos[0].save
@admin_user.deferred_todos.reload @admin_user.deferred_todos.reload
@admin_user.deferred_todos.find_and_activate_ready @admin_user.deferred_todos.find_and_activate_ready