diff --git a/lib/post_revisor.rb b/lib/post_revisor.rb index 6e4278c17b3..48f9c97143f 100644 --- a/lib/post_revisor.rb +++ b/lib/post_revisor.rb @@ -199,7 +199,7 @@ class PostRevisor create_or_update_revision end - USER_ACTIONS_TO_REMOVE ||= [UserAction::NEW_TOPIC, UserAction::REPLY, UserAction::RESPONSE] + USER_ACTIONS_TO_REMOVE ||= [UserAction::REPLY, UserAction::RESPONSE] def update_post if @fields.has_key?("user_id") && @fields["user_id"] != @post.user_id @@ -207,10 +207,18 @@ class PostRevisor new_owner = User.find(@fields["user_id"]) # UserActionObserver will create new UserAction records for the new owner + UserAction.where(target_post_id: @post.id) .where(user_id: prev_owner.id) .where(action_type: USER_ACTIONS_TO_REMOVE) .destroy_all + + if @post.post_number == 1 + UserAction.where(target_topic_id: @post.topic_id) + .where(user_id: prev_owner.id) + .where(action_type: UserAction::NEW_TOPIC) + .destroy_all + end end POST_TRACKED_FIELDS.each do |field| diff --git a/spec/services/post_owner_changer_spec.rb b/spec/services/post_owner_changer_spec.rb index 16da34e1faa..e6fffb942a9 100644 --- a/spec/services/post_owner_changer_spec.rb +++ b/spec/services/post_owner_changer_spec.rb @@ -47,7 +47,7 @@ describe PostOwnerChanger do p2user.user_stat.update_attributes(topic_count: 0, post_count: 1, first_post_created_at: p2.created_at, topic_reply_count: 1) UserAction.create!( action_type: UserAction::NEW_TOPIC, user_id: p1user.id, acting_user_id: p1user.id, - target_post_id: p1.id, target_topic_id: p1.topic_id, created_at: p1.created_at ) + target_post_id: -1, target_topic_id: p1.topic_id, created_at: p1.created_at ) UserAction.create!( action_type: UserAction::REPLY, user_id: p2user.id, acting_user_id: p2user.id, target_post_id: p2.id, target_topic_id: p2.topic_id, created_at: p2.created_at )