discourse/app/serializers/topic_list_serializer.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

50 lines
1.1 KiB
Ruby
Raw Permalink Normal View History

# 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,
:for_period,
:per_page,
:top_tags,
:tags,
:shared_drafts
2013-02-05 14:16:51 -05:00
has_many :topics, serializer: TopicListItemSerializer, embed: :objects
has_many :shared_drafts, serializer: TopicListItemSerializer, embed: :objects
has_many :tags, serializer: TagSerializer, embed: :objects
has_many :categories, serializer: CategoryBadgeSerializer, embed: :objects
2013-02-05 14:16:51 -05:00
def initialize(object, options = {})
super
options[:filter] = object.filter
end
2013-02-05 14:16:51 -05:00
def can_create_topic
scope.can_create?(Topic)
2013-02-05 14:16:51 -05:00
end
def include_shared_drafts?
object.shared_drafts.present?
end
def include_for_period?
for_period.present?
end
2013-02-05 14:16:51 -05:00
def include_more_topics_url?
object.more_topics_url.present? && (object.topics.size == object.per_page)
2013-02-05 14:16:51 -05:00
end
def include_top_tags?
Tag.include_tags?
end
def include_tags?
SiteSetting.tagging_enabled && object.tags.present?
end
def include_categories?
scope.can_lazy_load_categories?
end
2013-02-05 14:16:51 -05:00
end