2019-05-03 08:17:27 +10:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
class TopicListSerializer < ApplicationSerializer
|
2013-04-02 16:52:51 -04:00
|
|
|
attributes :can_create_topic,
|
|
|
|
:more_topics_url,
|
2014-12-15 11:54:26 -05:00
|
|
|
:for_period,
|
2016-04-25 15:55:15 -04:00
|
|
|
:per_page,
|
2018-01-12 16:35:16 -05:00
|
|
|
:top_tags,
|
2018-03-13 15:59:12 -04:00
|
|
|
:tags,
|
2018-11-19 14:54:40 +08:00
|
|
|
:shared_drafts
|
2013-02-05 14:16:51 -05:00
|
|
|
|
2018-11-19 14:54:40 +08:00
|
|
|
has_many :topics, serializer: TopicListItemSerializer, embed: :objects
|
2018-03-13 15:59:12 -04:00
|
|
|
has_many :shared_drafts, serializer: TopicListItemSerializer, embed: :objects
|
2018-01-12 16:35:16 -05:00
|
|
|
has_many :tags, serializer: TagSerializer, embed: :objects
|
2024-04-17 18:52:34 +03:00
|
|
|
has_many :categories, serializer: CategoryBadgeSerializer, embed: :objects
|
2013-02-05 14:16:51 -05:00
|
|
|
|
2024-10-18 17:24:47 -03:00
|
|
|
def initialize(object, options = {})
|
|
|
|
super
|
|
|
|
options[:filter] = object.filter
|
|
|
|
end
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
def can_create_topic
|
2013-11-19 14:08:45 -05:00
|
|
|
scope.can_create?(Topic)
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|
|
|
|
|
2018-03-13 15:59:12 -04:00
|
|
|
def include_shared_drafts?
|
|
|
|
object.shared_drafts.present?
|
|
|
|
end
|
|
|
|
|
2014-08-28 14:34:31 -04:00
|
|
|
def include_for_period?
|
|
|
|
for_period.present?
|
|
|
|
end
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
def include_more_topics_url?
|
2014-12-15 11:54:26 -05:00
|
|
|
object.more_topics_url.present? && (object.topics.size == object.per_page)
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|
|
|
|
|
2018-01-12 15:26:13 -05:00
|
|
|
def include_top_tags?
|
2016-07-07 21:17:56 +08:00
|
|
|
Tag.include_tags?
|
2016-04-25 15:55:15 -04:00
|
|
|
end
|
2018-01-12 16:35:16 -05:00
|
|
|
|
|
|
|
def include_tags?
|
|
|
|
SiteSetting.tagging_enabled && object.tags.present?
|
|
|
|
end
|
2023-10-17 19:06:01 +03:00
|
|
|
|
|
|
|
def include_categories?
|
2024-01-17 20:26:51 +02:00
|
|
|
scope.can_lazy_load_categories?
|
2023-10-17 19:06:01 +03:00
|
|
|
end
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|