mirror of
https://github.com/discourse/discourse.git
synced 2024-12-11 23:54:02 +08:00
6039b513fe
This commit introduces the foundation for a new design for the /about page that we're currently working on. The current version will remain available and still be the default until we finish the new version and are ready to roll out. To opt into the new version right now, add one or more group to the `experimental_redesigned_about_page_groups` site setting and members in those groups will get the new version. Internal topic: t/128545.
81 lines
1.8 KiB
Ruby
81 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class AboutSerializer < ApplicationSerializer
|
|
class CategoryAboutSerializer < CategoryBadgeSerializer
|
|
has_one :parent_category, serializer: CategoryBadgeSerializer, root: :categories
|
|
end
|
|
|
|
class UserAboutSerializer < BasicUserSerializer
|
|
attributes :title, :last_seen_at
|
|
end
|
|
|
|
class AboutCategoryModsSerializer < ApplicationSerializer
|
|
has_one :category, serializer: CategoryAboutSerializer
|
|
has_many :moderators, serializer: UserAboutSerializer, root: :users
|
|
end
|
|
|
|
has_many :moderators, serializer: UserAboutSerializer, root: :users
|
|
has_many :admins, serializer: UserAboutSerializer, root: :users
|
|
has_many :category_moderators, serializer: AboutCategoryModsSerializer, embed: :objects
|
|
|
|
attributes :stats,
|
|
:description,
|
|
:extended_site_description,
|
|
:banner_image,
|
|
:title,
|
|
:locale,
|
|
:version,
|
|
:https,
|
|
:can_see_about_stats,
|
|
:contact_url,
|
|
:contact_email
|
|
|
|
def include_stats?
|
|
can_see_about_stats
|
|
end
|
|
|
|
def stats
|
|
object.class.fetch_cached_stats
|
|
end
|
|
|
|
def include_contact_url?
|
|
can_see_site_contact_details
|
|
end
|
|
|
|
def contact_url
|
|
SiteSetting.contact_url
|
|
end
|
|
|
|
def include_contact_email?
|
|
can_see_site_contact_details
|
|
end
|
|
|
|
def contact_email
|
|
SiteSetting.contact_email
|
|
end
|
|
|
|
def include_extended_site_description?
|
|
render_redesigned_about_page?
|
|
end
|
|
|
|
def include_banner_image?
|
|
render_redesigned_about_page?
|
|
end
|
|
|
|
private
|
|
|
|
def can_see_about_stats
|
|
scope.can_see_about_stats?
|
|
end
|
|
|
|
def can_see_site_contact_details
|
|
scope.can_see_site_contact_details?
|
|
end
|
|
|
|
def render_redesigned_about_page?
|
|
return false if scope.anonymous?
|
|
|
|
scope.user.in_any_groups?(SiteSetting.experimental_redesigned_about_page_groups_map)
|
|
end
|
|
end
|