2019-05-02 17:17:27 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-05-10 01:47:47 -05:00
|
|
|
class BasicCategorySerializer < ApplicationSerializer
|
|
|
|
attributes :id,
|
|
|
|
:name,
|
|
|
|
:color,
|
|
|
|
:text_color,
|
|
|
|
:slug,
|
|
|
|
:topic_count,
|
2014-05-28 12:33:39 -05:00
|
|
|
:post_count,
|
2015-08-27 12:14:59 -05:00
|
|
|
:position,
|
2013-05-10 01:47:47 -05:00
|
|
|
:description,
|
2014-10-21 23:48:18 -05:00
|
|
|
:description_text,
|
2019-12-19 09:09:45 -06:00
|
|
|
:description_excerpt,
|
2013-05-10 01:47:47 -05:00
|
|
|
:topic_url,
|
2013-07-16 00:44:07 -05:00
|
|
|
:read_restricted,
|
2013-10-23 12:29:20 -05:00
|
|
|
:permission,
|
2014-04-17 04:17:39 -05:00
|
|
|
:parent_category_id,
|
2014-06-27 14:35:25 -05:00
|
|
|
:notification_level,
|
2015-07-02 15:18:59 -05:00
|
|
|
:can_edit,
|
2015-09-02 16:46:04 -05:00
|
|
|
:topic_template,
|
2023-12-08 04:01:08 -06:00
|
|
|
:has_children,
|
2024-04-25 08:47:45 -05:00
|
|
|
:subcategory_count,
|
2016-11-01 11:18:31 -05:00
|
|
|
:sort_order,
|
2017-02-21 17:08:09 -06:00
|
|
|
:sort_ascending,
|
2017-03-01 11:03:12 -06:00
|
|
|
:show_subcategory_list,
|
2017-03-02 09:56:04 -06:00
|
|
|
:num_featured_topics,
|
2017-03-08 10:31:30 -06:00
|
|
|
:default_view,
|
2017-03-22 15:54:12 -05:00
|
|
|
:subcategory_list_style,
|
2018-03-28 13:40:26 -05:00
|
|
|
:default_top_period,
|
2020-06-03 14:26:56 -05:00
|
|
|
:default_list_filter,
|
2018-07-16 03:10:22 -05:00
|
|
|
:minimum_required_tags,
|
2019-03-16 06:48:57 -05:00
|
|
|
:navigate_to_first_post_after_read,
|
|
|
|
:custom_fields
|
2013-05-10 01:47:47 -05:00
|
|
|
|
2016-12-02 01:15:34 -06:00
|
|
|
has_one :uploaded_logo, embed: :object, serializer: CategoryUploadSerializer
|
2022-10-07 10:00:44 -05:00
|
|
|
has_one :uploaded_logo_dark, embed: :object, serializer: CategoryUploadSerializer
|
2016-12-02 01:15:34 -06:00
|
|
|
has_one :uploaded_background, embed: :object, serializer: CategoryUploadSerializer
|
2023-10-20 07:48:06 -05:00
|
|
|
has_one :uploaded_background_dark, embed: :object, serializer: CategoryUploadSerializer
|
2016-12-02 01:15:34 -06:00
|
|
|
|
2013-10-23 13:40:39 -05:00
|
|
|
def include_parent_category_id?
|
|
|
|
parent_category_id
|
|
|
|
end
|
2014-06-24 16:27:29 -05:00
|
|
|
|
2019-03-04 14:15:38 -06:00
|
|
|
def name
|
|
|
|
if object.uncategorized?
|
|
|
|
I18n.t("uncategorized_category_name", locale: SiteSetting.default_locale)
|
2023-01-09 06:20:10 -06:00
|
|
|
else
|
2019-03-04 14:15:38 -06:00
|
|
|
object.name
|
2023-01-09 06:20:10 -06:00
|
|
|
end
|
2019-03-04 14:15:38 -06:00
|
|
|
end
|
|
|
|
|
2020-01-03 10:10:06 -06:00
|
|
|
def description_text
|
|
|
|
if object.uncategorized?
|
|
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
2023-01-09 06:20:10 -06:00
|
|
|
else
|
2020-01-03 10:10:06 -06:00
|
|
|
object.description_text
|
2023-01-09 06:20:10 -06:00
|
|
|
end
|
2020-01-03 10:10:06 -06:00
|
|
|
end
|
|
|
|
|
2014-06-24 16:27:29 -05:00
|
|
|
def description
|
2019-03-04 14:15:38 -06:00
|
|
|
if object.uncategorized?
|
|
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
2023-01-09 06:20:10 -06:00
|
|
|
else
|
2019-03-04 14:15:38 -06:00
|
|
|
object.description
|
2023-01-09 06:20:10 -06:00
|
|
|
end
|
2014-06-24 16:27:29 -05:00
|
|
|
end
|
2014-08-12 12:30:28 -05:00
|
|
|
|
2020-01-03 10:46:18 -06:00
|
|
|
def description_excerpt
|
|
|
|
if object.uncategorized?
|
|
|
|
I18n.t("category.uncategorized_description", locale: SiteSetting.default_locale)
|
2023-01-09 06:20:10 -06:00
|
|
|
else
|
2020-01-03 10:46:18 -06:00
|
|
|
object.description_excerpt
|
2023-01-09 06:20:10 -06:00
|
|
|
end
|
2020-01-03 10:46:18 -06:00
|
|
|
end
|
|
|
|
|
2014-08-12 12:30:28 -05:00
|
|
|
def can_edit
|
|
|
|
true
|
|
|
|
end
|
2014-09-09 08:32:58 -05:00
|
|
|
|
2014-08-12 12:30:28 -05:00
|
|
|
def include_can_edit?
|
|
|
|
scope && scope.can_edit?(object)
|
|
|
|
end
|
|
|
|
|
2015-12-13 04:26:16 -06:00
|
|
|
def notification_level
|
2016-02-03 06:58:59 -06:00
|
|
|
object.notification_level
|
2015-12-13 04:26:16 -06:00
|
|
|
end
|
2019-03-16 06:48:57 -05:00
|
|
|
|
|
|
|
def custom_fields
|
|
|
|
object.preloaded_custom_fields
|
|
|
|
end
|
|
|
|
|
|
|
|
def include_custom_fields?
|
|
|
|
custom_fields.present?
|
|
|
|
end
|
2013-05-10 01:47:47 -05:00
|
|
|
end
|