From 4b61d6af283bf3d2df1ea3f38807fbea6ad976a2 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Mon, 3 Mar 2014 16:11:59 -0500 Subject: [PATCH] BUGFIX: new date was incorrect --- app/models/topic_tracking_state.rb | 8 ++++---- app/models/user.rb | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/models/topic_tracking_state.rb b/app/models/topic_tracking_state.rb index 0701bbe554..7e51acd489 100644 --- a/app/models/topic_tracking_state.rb +++ b/app/models/topic_tracking_state.rb @@ -83,11 +83,11 @@ class TopicTrackingState end def self.treat_as_new_topic_clause - User.where("CASE - WHEN COALESCE(u.new_topic_duration_minutes, :default_duration) = :always THEN us.new_since - WHEN COALESCE(u.new_topic_duration_minutes, :default_duration) = :last_visit THEN COALESCE(u.previous_visit_at,us.new_since) + User.where("GREATEST(CASE + WHEN COALESCE(u.new_topic_duration_minutes, :default_duration) = :always THEN u.created_at + WHEN COALESCE(u.new_topic_duration_minutes, :default_duration) = :last_visit THEN COALESCE(u.previous_visit_at,u.created_at) ELSE (:now::timestamp - INTERVAL '1 MINUTE' * COALESCE(u.new_topic_duration_minutes, :default_duration)) - END", + END, us.new_since)", now: DateTime.now, last_visit: User::NewTopicDuration::LAST_VISIT, always: User::NewTopicDuration::ALWAYS, diff --git a/app/models/user.rb b/app/models/user.rb index a68173e52b..fdce215e4f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -464,14 +464,14 @@ class User < ActiveRecord::Base def treat_as_new_topic_start_date duration = new_topic_duration_minutes || SiteSetting.new_topic_duration_minutes - case duration + [case duration when User::NewTopicDuration::ALWAYS - user_stat.new_since + created_at when User::NewTopicDuration::LAST_VISIT previous_visit_at || user_stat.new_since else duration.minutes.ago - end + end, user_stat.new_since].max end def readable_name