From f52a2eafa8880d0fb2cf653bd187946d78cdb163 Mon Sep 17 00:00:00 2001 From: Eric Allen Date: Sat, 20 Sep 2008 17:34:22 -0700 Subject: [PATCH] A few fixes after more thorough review. --- app/controllers/application.rb | 2 +- app/models/preference.rb | 2 +- app/models/user.rb | 2 +- db/migrate/041_change_dates_to_datetimes.rb | 13 ++++++------- spec/models/user_spec.rb | 3 ++- test/unit/preference_test.rb | 2 +- test/unit/user_test.rb | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/controllers/application.rb b/app/controllers/application.rb index 55c89a60..5a9a6fa9 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -173,7 +173,7 @@ class ApplicationController < ActionController::Base if show_from_date.nil? todo.show_from=nil 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 saved = todo.save diff --git a/app/models/preference.rb b/app/models/preference.rb index 6b76fd97..ede609e6 100644 --- a/app/models/preference.rb +++ b/app/models/preference.rb @@ -21,7 +21,7 @@ class Preference < ActiveRecord::Base def parse_date(s) return nil if s.blank? - Date.strptime(s, date_format) + user.at_midnight(Date.strptime(s, date_format)) end end \ No newline at end of file diff --git a/app/models/user.rb b/app/models/user.rb index fbbdbd09..702b5c62 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -71,7 +71,7 @@ class User < ActiveRecord::Base :conditions => [ 'state = ?', 'deferred' ], :order => 'show_from ASC, todos.created_at DESC' do 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 has_many :completed_todos, diff --git a/db/migrate/041_change_dates_to_datetimes.rb b/db/migrate/041_change_dates_to_datetimes.rb index 5dfff20a..99e75179 100644 --- a/db/migrate/041_change_dates_to_datetimes.rb +++ b/db/migrate/041_change_dates_to_datetimes.rb @@ -4,17 +4,16 @@ class ChangeDatesToDatetimes < ActiveRecord::Migration change_column :todos, :due, :datetime change_column :recurring_todos, :start_from, :datetime change_column :recurring_todos, :end_date, :datetime - + User.all(:include => [:todos, :recurring_todos]).each do |user| - zone = TimeZone[user.prefs.time_zone] user.todos.each do |todo| - todo.update_attribute(:show_from, user.at_midnight(todo.show_from)) unless d.nil? - todo.update_attribute(:due, user.at_midnight(todo.due)) 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 todo.due.nil? end - + user.recurring_todos.each do |todo| - todo.update_attribute(:start_from, user.at_midnight(todo.start_from)) unless d.nil? - todo.update_attribute(:end_date, user.at_midnight(todo.end_date)) 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 todo.end_date.nil? end end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 25176c83..5ab5ca40 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -185,8 +185,9 @@ describe User do user.save! user.create_preference 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) - 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! user.deferred_todos.find_and_activate_ready diff --git a/test/unit/preference_test.rb b/test/unit/preference_test.rb index 30daace5..18595ef7 100644 --- a/test/unit/preference_test.rb +++ b/test/unit/preference_test.rb @@ -20,7 +20,7 @@ class PreferenceTest < Test::Rails::TestCase end 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 def test_parse_date_returns_nil_if_string_is_empty diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 06da48a5..7f48861c 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -235,7 +235,7 @@ class UserTest < Test::Rails::TestCase def test_find_and_activate_deferred_todos_that_are_ready 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.reload @admin_user.deferred_todos.find_and_activate_ready