discourse-solved/app/serializers/concerns/topic_answer_mixin.rb

26 lines
674 B
Ruby

# frozen_string_literal: true
module TopicAnswerMixin
def self.included(klass)
klass.attributes :has_accepted_answer, :can_have_answer
end
def has_accepted_answer
object.custom_fields[::DiscourseSolved::ACCEPTED_ANSWER_POST_ID_CUSTOM_FIELD].present?
end
def include_has_accepted_answer?
SiteSetting.solved_enabled
end
def can_have_answer
return true if SiteSetting.allow_solved_on_all_topics
return false if object.closed || object.archived
scope.allow_accepted_answers?(object.category_id, object.tags.map(&:name))
end
def include_can_have_answer?
SiteSetting.solved_enabled && SiteSetting.empty_box_on_unsolved
end
end