From 6cd43303358c39170515c8a59e0a8a0a8b5bbadb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Wed, 11 Mar 2015 18:07:47 +0100 Subject: [PATCH] FIX: show all deleted posts --- .../discourse/models/user_posts_stream.js | 2 +- app/controllers/posts_controller.rb | 5 +--- app/models/user.rb | 2 -- spec/models/user_spec.rb | 24 +++++++++++++++++++ 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/discourse/models/user_posts_stream.js b/app/assets/javascripts/discourse/models/user_posts_stream.js index b155464566b..e00646cc121 100644 --- a/app/assets/javascripts/discourse/models/user_posts_stream.js +++ b/app/assets/javascripts/discourse/models/user_posts_stream.js @@ -45,7 +45,7 @@ Discourse.UserPostsStream = Discourse.Model.extend({ self.setProperties({ loaded: true, itemsLoaded: self.get("itemsLoaded") + posts.length, - canLoadMore: posts.length === 0 || posts.length < 60 + canLoadMore: posts.length > 0 }); } }).finally(function () { diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index a43cd4a6b7f..b0d35c669f0 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -351,10 +351,7 @@ class PostsController < ApplicationController offset = [params[:offset].to_i, 0].max limit = [(params[:limit] || 60).to_i, 100].min - posts = user_posts(user.id, offset, limit) - .where(user_deleted: false) - .where.not(deleted_by_id: user.id) - .where.not(deleted_at: nil) + posts = user_posts(user.id, offset, limit).where.not(deleted_at: nil) render_serialized(posts, AdminPostSerializer) end diff --git a/app/models/user.rb b/app/models/user.rb index 34eb40a8805..e815e86d255 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -681,8 +681,6 @@ class User < ActiveRecord::Base def number_of_deleted_posts Post.with_deleted .where(user_id: self.id) - .where(user_deleted: false) - .where.not(deleted_by_id: self.id) .where.not(deleted_at: nil) .count end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 95e32d837aa..6b63af0d682 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1156,4 +1156,28 @@ describe User do end + describe "number_of_deleted_posts" do + + let(:user) { Fabricate(:user, id: 2) } + let(:moderator) { Fabricate(:moderator) } + + it "counts all the posts" do + # at least 1 "unchanged" post + Fabricate(:post, user: user) + + post_deleted_by_moderator = Fabricate(:post, user: user) + PostDestroyer.new(moderator, post_deleted_by_moderator).destroy + + post_deleted_by_user = Fabricate(:post, user: user, post_number: 2) + PostDestroyer.new(user, post_deleted_by_user).destroy + + # fake stub deletion + post_deleted_by_user.update_columns(updated_at: 2.days.ago) + PostDestroyer.destroy_stubs + + expect(user.number_of_deleted_posts).to eq(2) + end + + end + end