diff --git a/app/controllers/topics_controller.rb b/app/controllers/topics_controller.rb index f56d1aa718d..af21eb991f1 100644 --- a/app/controllers/topics_controller.rb +++ b/app/controllers/topics_controller.rb @@ -315,7 +315,7 @@ class TopicsController < ApplicationController end def should_track_visit_to_topic? - (!request.xhr? || params[:track_visit]) && current_user + !!((!request.xhr? || params[:track_visit]) && current_user) end def perform_show_response diff --git a/app/models/invited_list.rb b/app/models/invited_list.rb index a91affc57c0..35e3a6bf9f9 100644 --- a/app/models/invited_list.rb +++ b/app/models/invited_list.rb @@ -11,7 +11,7 @@ class InvitedList @by_user = user invited = Invite.where(invited_by_id: @by_user.id) - .includes(:user) + .includes(:user => :user_stat) .order(:redeemed_at) invited.each do |i| if i.redeemed? diff --git a/app/serializers/invited_user_serializer.rb b/app/serializers/invited_user_serializer.rb index a6afc7673b8..dc996b10981 100644 --- a/app/serializers/invited_user_serializer.rb +++ b/app/serializers/invited_user_serializer.rb @@ -8,8 +8,19 @@ class InvitedUserSerializer < BasicUserSerializer :days_since_created def time_read - return nil if object.time_read.blank? - AgeWords.age_words(object.time_read) + AgeWords.age_words(object.user_stat.time_read) + end + + def days_visited + object.user_stat.days_visited + end + + def topics_entered + object.user_stat.topics_entered + end + + def posts_read_count + object.user_stat.posts_read_count end def days_since_created diff --git a/app/serializers/post_stream_serializer_mixin.rb b/app/serializers/post_stream_serializer_mixin.rb index fad70bbebae..6080ba3ff8e 100644 --- a/app/serializers/post_stream_serializer_mixin.rb +++ b/app/serializers/post_stream_serializer_mixin.rb @@ -13,7 +13,7 @@ module PostStreamSerializerMixin return @posts if @posts.present? @posts = [] @highest_number_in_posts = 0 - if object.posts.present? + if object.posts object.posts.each_with_index do |p, idx| @highest_number_in_posts = p.post_number if p.post_number > @highest_number_in_posts ps = PostSerializer.new(p, scope: scope, root: false) diff --git a/db/migrate/20131003061137_move_columns_to_user_stats.rb b/db/migrate/20131003061137_move_columns_to_user_stats.rb index 93fe3eab5a1..b5346a9452e 100644 --- a/db/migrate/20131003061137_move_columns_to_user_stats.rb +++ b/db/migrate/20131003061137_move_columns_to_user_stats.rb @@ -8,7 +8,7 @@ class MoveColumnsToUserStats < ActiveRecord::Migration add_column :user_stats, :likes_received, :integer, default: 0, null: false add_column :user_stats, :topic_reply_count, :integer, default: 0, null: false - execute 'UPDATE user_stats + execute 'UPDATE user_stats s SET topics_entered = u.topics_entered, time_read = u.time_read, days_visited = u.days_visited, @@ -16,8 +16,7 @@ class MoveColumnsToUserStats < ActiveRecord::Migration likes_given = u.likes_given, likes_received = u.likes_received, topic_reply_count = u.topic_reply_count - FROM user_stats s - JOIN users u on u.id = s.user_id + FROM users u WHERE u.id = s.user_id ' remove_column :users, :topics_entered @@ -38,7 +37,7 @@ class MoveColumnsToUserStats < ActiveRecord::Migration add_column :users, :likes_received, :integer add_column :users, :topic_reply_count, :integer - execute 'UPDATE users + execute 'UPDATE users s SET topics_entered = u.topics_entered, time_read = u.time_read, days_visited = u.days_visited, @@ -46,8 +45,7 @@ class MoveColumnsToUserStats < ActiveRecord::Migration likes_given = u.likes_given, likes_received = u.likes_received, topic_reply_count = u.topic_reply_count - FROM users s - JOIN user_stats u on s.id = u.user_id + FROM user_stats u WHERE s.id = u.user_id ' remove_column :user_stats, :topics_entered diff --git a/lib/topic_view.rb b/lib/topic_view.rb index cf088d39d8c..8359071bc9d 100644 --- a/lib/topic_view.rb +++ b/lib/topic_view.rb @@ -198,7 +198,7 @@ class TopicView @current_post_ids ||= if @posts.is_a?(Array) @posts.map {|p| p.id } else - @posts.pluck(:post_number) + @posts.pluck(:post_number) end end @@ -214,7 +214,7 @@ class TopicView return result unless @user.present? return result unless topic_user.present? - post_numbers = PostTiming.select(:post_number) + post_numbers = PostTiming .where(topic_id: @topic.id, user_id: @user.id) .where(post_number: current_post_ids) .pluck(:post_number)