mirror of
https://github.com/discourse/discourse.git
synced 2024-12-30 15:23:48 +08:00
dbe923d26e
Selecting the +subcategories option does not work sometimes when "lazy load categories" is enabled because the subcategories may not be fetched. This ensures that subcategories are loaded by requesting them before being used.
97 lines
2.4 KiB
Ruby
97 lines
2.4 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,
|
|
:subcategory_count,
|
|
: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
|
|
has_one :uploaded_background_dark, 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
|