mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Don't store translated trust level names in anonymous cache (#13224)
Refactors `TrustLevel` and moves translations from server to client Additional changes: * "staff" and "admin" wasn't translatable in site settings * it replaces a concatenated string with a translation * uses translation for trust levels in users_by_trust_level report * adds a DB migration to rename keys of translation overrides affected by this commit
This commit is contained in:
@@ -24,7 +24,7 @@ module Reports::UsersByTrustLevel
|
||||
]
|
||||
|
||||
User.real.group('trust_level').count.sort.each do |level, count|
|
||||
key = TrustLevel.levels[level.to_i]
|
||||
key = TrustLevel.name(level.to_i)
|
||||
url = Proc.new { |k| "/admin/users/list/#{k}" }
|
||||
report.data << { url: url.call(key), key: key, x: level.to_i, y: count }
|
||||
end
|
||||
|
||||
@@ -21,7 +21,7 @@ class Site
|
||||
end
|
||||
|
||||
def trust_levels
|
||||
TrustLevel.all
|
||||
TrustLevel.levels
|
||||
end
|
||||
|
||||
def user_fields
|
||||
|
||||
@@ -18,4 +18,12 @@ class TrustLevelAndStaffSetting < TrustLevelSetting
|
||||
def self.special_groups
|
||||
['staff', 'admin']
|
||||
end
|
||||
|
||||
def self.translation(value)
|
||||
if special_group?(value)
|
||||
I18n.t("trust_levels.#{value}")
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8,18 +8,23 @@ class TrustLevelSetting < EnumSiteSetting
|
||||
end
|
||||
|
||||
def self.values
|
||||
levels = TrustLevel.all
|
||||
valid_values.map { |x|
|
||||
{
|
||||
name: x.is_a?(Integer) ? "#{x}: #{levels[x.to_i].name}" : x,
|
||||
value: x
|
||||
}
|
||||
}
|
||||
valid_values.map do |value|
|
||||
{ name: translation(value), value: value }
|
||||
end
|
||||
end
|
||||
|
||||
def self.valid_values
|
||||
TrustLevel.valid_range.to_a
|
||||
end
|
||||
|
||||
def self.translation(value)
|
||||
I18n.t(
|
||||
"js.trust_levels.detailed_name",
|
||||
level: value,
|
||||
name: TrustLevel.name(value)
|
||||
)
|
||||
end
|
||||
|
||||
private_class_method :valid_values
|
||||
private_class_method :translation
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user