2025-03-25 14:51:32 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module DiscourseSolved::TopicExtension
|
|
|
|
extend ActiveSupport::Concern
|
|
|
|
|
|
|
|
prepended { has_one :solved, class_name: "DiscourseSolved::SolvedTopic", dependent: :destroy }
|
2025-06-24 01:08:02 -03:00
|
|
|
|
|
|
|
def accepted_answer_post_info
|
|
|
|
return nil unless solved
|
|
|
|
|
|
|
|
answer_post = solved.answer_post
|
|
|
|
|
|
|
|
answer_post_user = answer_post.user
|
|
|
|
accepter = solved.accepter
|
|
|
|
|
|
|
|
excerpt =
|
|
|
|
if SiteSetting.solved_quote_length > 0
|
|
|
|
PrettyText.excerpt(
|
|
|
|
answer_post.cooked,
|
|
|
|
SiteSetting.solved_quote_length,
|
|
|
|
keep_emoji_images: true,
|
|
|
|
)
|
|
|
|
else
|
|
|
|
nil
|
|
|
|
end
|
|
|
|
|
|
|
|
accepted_answer = {
|
|
|
|
post_number: answer_post.post_number,
|
|
|
|
username: answer_post_user.username,
|
|
|
|
name: answer_post_user.name,
|
|
|
|
excerpt:,
|
|
|
|
}
|
|
|
|
|
|
|
|
if SiteSetting.show_who_marked_solved
|
|
|
|
accepted_answer[:accepter_name] = accepter.name
|
|
|
|
accepted_answer[:accepter_username] = accepter.username
|
|
|
|
end
|
|
|
|
|
|
|
|
if !SiteSetting.enable_names || !SiteSetting.display_name_on_posts
|
|
|
|
accepted_answer[:name] = nil
|
|
|
|
accepted_answer[:accepter_name] = nil
|
|
|
|
end
|
|
|
|
|
|
|
|
accepted_answer
|
|
|
|
end
|
2025-03-25 14:51:32 +08:00
|
|
|
end
|