mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 20:20:43 +08:00
95 lines
2.3 KiB
Ruby
95 lines
2.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class BasicCategorySerializer < ApplicationSerializer
|
|
attributes :id,
|
|
:name,
|
|
:color,
|
|
:text_color,
|
|
:slug,
|
|
:topic_count,
|
|
:post_count,
|
|
:position,
|
|
:description,
|
|
:description_text,
|
|
:description_excerpt,
|
|
:topic_url,
|
|
:read_restricted,
|
|
:permission,
|
|
:parent_category_id,
|
|
:notification_level,
|
|
:can_edit,
|
|
:topic_template,
|
|
:has_children,
|
|
:sort_order,
|
|
:sort_ascending,
|
|
:show_subcategory_list,
|
|
:num_featured_topics,
|
|
:default_view,
|
|
:subcategory_list_style,
|
|
:default_top_period,
|
|
:default_list_filter,
|
|
:minimum_required_tags,
|
|
:navigate_to_first_post_after_read,
|
|
:custom_fields
|
|
|
|
has_one :uploaded_logo, embed: :object, serializer: CategoryUploadSerializer
|
|
has_one :uploaded_logo_dark, embed: :object, serializer: CategoryUploadSerializer
|
|
has_one :uploaded_background, embed: :object, serializer: CategoryUploadSerializer
|
|
|
|
def include_parent_category_id?
|
|
parent_category_id
|
|
end
|
|
|
|
def name
|
|
if object.uncategorized?
|
|
I18n.t("uncategorized_category_name", locale: SiteSetting.default_locale)
|
|
else
|
|
object.name
|
|
end
|
|
end
|
|
|
|
def description_text
|
|
if object.uncategorized?
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
|
else
|
|
object.description_text
|
|
end
|
|
end
|
|
|
|
def description
|
|
if object.uncategorized?
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
|
else
|
|
object.description
|
|
end
|
|
end
|
|
|
|
def description_excerpt
|
|
if object.uncategorized?
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
|
else
|
|
object.description_excerpt
|
|
end
|
|
end
|
|
|
|
def can_edit
|
|
true
|
|
end
|
|
|
|
def include_can_edit?
|
|
scope && scope.can_edit?(object)
|
|
end
|
|
|
|
def notification_level
|
|
object.notification_level
|
|
end
|
|
|
|
def custom_fields
|
|
object.preloaded_custom_fields
|
|
end
|
|
|
|
def include_custom_fields?
|
|
custom_fields.present?
|
|
end
|
|
end
|