Skip to content

Commit 9d2dd6c

Browse files
author
Charlie Forkish
committed
leave localization in ScriptLevel.summarize, but stop caching the summaries
1 parent 97c585d commit 9d2dd6c

3 files changed

Lines changed: 14 additions & 21 deletions

File tree

dashboard/app/controllers/script_levels_controller.rb

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -256,29 +256,14 @@ def stage_extras
256256
@script = @stage.script
257257
script_bonus_levels_by_stage = @script.get_bonus_script_levels(@stage)
258258

259-
# bonus level summaries are cached, so explicitly don't contain any
260-
# user-specific data. hence we need to merge the user's progress and
261-
# localized level display name and description into the cached data.
259+
# bonus level summaries explicitly don't contain any user-specific data,
260+
# so we need to merge in the user's progress.
262261
script_bonus_levels_by_stage.each do |stage|
263262
stage[:levels].each do |level_summary|
264263
ul = UserLevel.find_by(
265264
level_id: level_summary[:level_id], user_id: user.id, script: @script
266265
)
267266
level_summary[:perfect] = ul&.perfect?
268-
269-
level = Level.find(level_summary[:level_id])
270-
localized_level_description = I18n.t(
271-
level.name,
272-
scope: [:data, :bubble_choice_description],
273-
default: level.bubble_choice_description
274-
)
275-
localized_level_display_name = I18n.t(
276-
level.name,
277-
scope: [:data, :display_name],
278-
default: level.display_name
279-
) || I18n.t('lesson_extras.bonus_level')
280-
level_summary[:description] = localized_level_description
281-
level_summary[:display_name] = localized_level_display_name
282267
end
283268
end
284269

dashboard/app/models/script.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -885,13 +885,19 @@ def get_bonus_script_levels(current_stage)
885885
@all_bonus_script_levels = lessons.map do |stage|
886886
{
887887
stageNumber: stage.relative_position,
888-
levels: stage.script_levels.select(&:bonus).map(&:summarize_as_bonus)
888+
levels: stage.script_levels.select(&:bonus)
889889
}
890890
end
891891
@all_bonus_script_levels.select! {|stage| stage[:levels].any?}
892892
end
893893

894-
@all_bonus_script_levels.select {|stage| stage[:stageNumber] <= current_stage.absolute_position}
894+
stage_levels = @all_bonus_script_levels.select do |stage|
895+
stage[:stageNumber] <= current_stage.absolute_position
896+
end
897+
stage_levels.map do |stage|
898+
stage[:levels] = stage[:levels].map(&:summarize_as_bonus)
899+
end
900+
stage_levels
895901
end
896902

897903
def pre_reader_tts_level?

dashboard/app/models/script_level.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -494,12 +494,14 @@ def self.summarize_extra_puzzle_pages(last_level_summary)
494494
end
495495

496496
def summarize_as_bonus
497+
localized_level_description = I18n.t(level.name, scope: [:data, :bubble_choice_description], default: level.bubble_choice_description)
498+
localized_level_display_name = I18n.t(level.name, scope: [:data, :display_name], default: level.display_name)
497499
{
498500
id: id.to_s,
499501
level_id: level.id.to_s,
500502
type: level.type,
501-
description: level.try(:bubble_choice_description),
502-
display_name: level.display_name,
503+
description: localized_level_description,
504+
display_name: localized_level_display_name || I18n.t('lesson_extras.bonus_level'),
503505
thumbnail_url: level.try(:thumbnail_url) || level.try(:solution_image_url),
504506
url: build_script_level_url(self),
505507
maze_summary: {

0 commit comments

Comments
 (0)