discourse/app/serializers/site_serializer.rb

63 lines
1.5 KiB
Ruby
Raw Normal View History

2013-02-05 14:16:51 -05:00
class SiteSerializer < ApplicationSerializer
2013-02-25 11:42:20 -05:00
attributes :default_archetype,
:notification_types,
:post_types,
:group_names,
:filters,
:periods,
:top_menu_items,
:anonymous_top_menu_items,
2014-02-12 23:37:28 -05:00
:uncategorized_category_id, # this is hidden so putting it here
:is_readonly,
:has_enough_topic_to_redirect_to_top_page
has_many :categories, serializer: BasicCategorySerializer, embed: :objects
2013-02-05 14:16:51 -05:00
has_many :post_action_types, embed: :objects
2014-02-05 17:54:16 -05:00
has_many :topic_flag_types, serializer: TopicFlagTypeSerializer, embed: :objects
2013-02-05 14:16:51 -05:00
has_many :trust_levels, embed: :objects
has_many :archetypes, embed: :objects, serializer: ArchetypeSerializer
2013-02-05 14:16:51 -05:00
def default_archetype
Archetype.default
end
def post_types
2013-03-18 16:03:46 -04:00
Post.types
end
2013-02-25 11:42:20 -05:00
def filters
Discourse.filters.map(&:to_s)
end
def periods
TopTopic.periods.map(&:to_s)
end
2014-02-05 17:54:16 -05:00
def top_menu_items
Discourse.top_menu_items.map(&:to_s)
end
def anonymous_top_menu_items
Discourse.anonymous_top_menu_items.map(&:to_s)
end
def uncategorized_category_id
SiteSetting.uncategorized_category_id
end
2014-02-12 23:37:28 -05:00
def is_readonly
Discourse.readonly_mode?
end
def has_enough_topic_to_redirect_to_top_page
Topic.listable_topics
.visible
.includes(:category).references(:category)
.where('COALESCE(categories.topic_id, 0) <> topics.id')
.count > SiteSetting.topics_per_period_in_top_page
end
2013-02-05 14:16:51 -05:00
end