mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Do not suppress reply-to when other posts quoted
This commit is contained in:
parent
9950c5bcd6
commit
e9a1af0113
@ -252,10 +252,6 @@ class Post < ActiveRecord::Base
|
|||||||
"#{topic_id}/#{post_number}"
|
"#{topic_id}/#{post_number}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def quoteless?
|
|
||||||
(quote_count == 0) && (reply_to_post_number.present?)
|
|
||||||
end
|
|
||||||
|
|
||||||
def reply_to_post
|
def reply_to_post
|
||||||
return if reply_to_post_number.blank?
|
return if reply_to_post_number.blank?
|
||||||
@reply_to_post ||= Post.find_by("topic_id = :topic_id AND post_number = :post_number", topic_id: topic_id, post_number: reply_to_post_number)
|
@reply_to_post ||= Post.find_by("topic_id = :topic_id AND post_number = :post_number", topic_id: topic_id, post_number: reply_to_post_number)
|
||||||
|
@ -44,6 +44,18 @@ class QuotedPost < ActiveRecord::Base
|
|||||||
post_id: post.id, ids: ids
|
post_id: post.id, ids: ids
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# simplest place to add this code
|
||||||
|
reply_quoted = false
|
||||||
|
|
||||||
|
if post.reply_to_post_number
|
||||||
|
reply_post_id = Post.where(topic_id: post.topic_id, post_number: post.reply_to_post_number).pluck(:id).first
|
||||||
|
reply_quoted = !!(reply_post_id && ids.include?(reply_post_id))
|
||||||
|
end
|
||||||
|
|
||||||
|
if reply_quoted != post.reply_quoted
|
||||||
|
post.update_columns(reply_quoted: reply_quoted)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ class PostSerializer < BasicPostSerializer
|
|||||||
end
|
end
|
||||||
|
|
||||||
def include_reply_to_user?
|
def include_reply_to_user?
|
||||||
(!SiteSetting.suppress_reply_when_quoting || object.quoteless?) && object.reply_to_user
|
!(SiteSetting.suppress_reply_when_quoting && object.reply_quoted?) && object.reply_to_user
|
||||||
end
|
end
|
||||||
|
|
||||||
def include_bookmarked?
|
def include_bookmarked?
|
||||||
|
@ -727,7 +727,7 @@ en:
|
|||||||
send_welcome_message: "Send all new users a welcome private message with a quick start guide."
|
send_welcome_message: "Send all new users a welcome private message with a quick start guide."
|
||||||
suppress_reply_directly_below: "Don't show the expandable reply count on a post when there is only a single reply directly below this post."
|
suppress_reply_directly_below: "Don't show the expandable reply count on a post when there is only a single reply directly below this post."
|
||||||
suppress_reply_directly_above: "Don't show the expandable in-reply-to on a post when there is only a single reply directly above this post."
|
suppress_reply_directly_above: "Don't show the expandable in-reply-to on a post when there is only a single reply directly above this post."
|
||||||
suppress_reply_when_quoting: "Don't show the expandable in-reply-to on a post when post contains any quotes."
|
suppress_reply_when_quoting: "Don't show the expandable in-reply-to on a post when post quotes reply."
|
||||||
|
|
||||||
topics_per_period_in_top_summary: "Number of top topics shown in the default top topics summary."
|
topics_per_period_in_top_summary: "Number of top topics shown in the default top topics summary."
|
||||||
topics_per_period_in_top_page: "Number of top topics shown on the expanded 'Show More' top topics."
|
topics_per_period_in_top_page: "Number of top topics shown on the expanded 'Show More' top topics."
|
||||||
|
16
db/migrate/20140731011328_add_reply_quoted_to_posts.rb
Normal file
16
db/migrate/20140731011328_add_reply_quoted_to_posts.rb
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
class AddReplyQuotedToPosts < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
add_column :posts, :reply_quoted, :boolean, null: false, default: false
|
||||||
|
execute "UPDATE posts p
|
||||||
|
SET reply_quoted = true
|
||||||
|
WHERE EXISTS(
|
||||||
|
SELECT 1 FROM quoted_posts q
|
||||||
|
JOIN posts p1 ON p1.post_number = p.reply_to_post_number AND p1.topic_id = p.topic_id
|
||||||
|
WHERE q.post_id = p.id AND q.quoted_post_id = p1.id
|
||||||
|
) AND p.reply_to_post_number IS NOT NULL"
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
remove_column :posts, :reply_quoted
|
||||||
|
end
|
||||||
|
end
|
@ -636,10 +636,6 @@ describe Post do
|
|||||||
reply.quote_count.should == 1
|
reply.quote_count.should == 1
|
||||||
end
|
end
|
||||||
|
|
||||||
it "isn't quoteless" do
|
|
||||||
reply.should_not be_quoteless
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'has a reply to the user of the original user' do
|
it 'has a reply to the user of the original user' do
|
||||||
reply.reply_to_user.should == post.user
|
reply.reply_to_user.should == post.user
|
||||||
end
|
end
|
||||||
|
@ -4,9 +4,11 @@ describe QuotedPost do
|
|||||||
it 'correctly extracts quotes in integration test' do
|
it 'correctly extracts quotes in integration test' do
|
||||||
post1 = create_post
|
post1 = create_post
|
||||||
post2 = create_post(topic_id: post1.topic_id,
|
post2 = create_post(topic_id: post1.topic_id,
|
||||||
raw: "[quote=\"#{post1.user.username}, post: 1, topic:#{post1.topic_id}\"]\ntest\n[/quote]\nthis is a test post")
|
raw: "[quote=\"#{post1.user.username}, post: 1, topic:#{post1.topic_id}\"]\ntest\n[/quote]\nthis is a test post",
|
||||||
|
reply_to_post_number: 1)
|
||||||
|
|
||||||
QuotedPost.find_by(post_id: post2.id, quoted_post_id: post1.id).should_not be_nil
|
QuotedPost.find_by(post_id: post2.id, quoted_post_id: post1.id).should_not be_nil
|
||||||
|
post2.reply_quoted.should == true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'correctly handles deltas' do
|
it 'correctly handles deltas' do
|
||||||
@ -23,5 +25,6 @@ HTML
|
|||||||
QuotedPost.where(post_id: post2.id).count.should == 1
|
QuotedPost.where(post_id: post2.id).count.should == 1
|
||||||
QuotedPost.find_by(post_id: post2.id, quoted_post_id: post1.id).should_not be_nil
|
QuotedPost.find_by(post_id: post2.id, quoted_post_id: post1.id).should_not be_nil
|
||||||
|
|
||||||
|
post2.reply_quoted.should == false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user