Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update more in-memory selects #41254

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion dashboard/app/models/lesson.rb
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,7 @@ def update_objectives(objectives)
# @return [Hash<String, String] all information needed to uniquely identify this object across environments.
def seeding_key(seed_context)
my_key = {'lesson.key': key}
my_lesson_group = seed_context.lesson_groups.select {|lg| lg.id == lesson_group_id}.first
my_lesson_group = seed_context.lesson_groups.find_by(id: lesson_group_id)
raise "No LessonGroup found for #{self.class}: #{my_key}, LessonGroup ID: #{lesson_group_id}" unless my_lesson_group
lesson_group_seeding_key = my_lesson_group.seeding_key(seed_context)
my_key.merge!(lesson_group_seeding_key) {|key, _, _| raise "Duplicate key when generating seeding_key: #{key}"}
Expand Down
2 changes: 1 addition & 1 deletion dashboard/app/models/lesson_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ def summarize_for_lesson_dropdown(is_student = false)
key: key,
displayName: localized_display_name,
userFacing: user_facing,
lessons: lessons.select(&:has_lesson_plan).map {|lesson| lesson.summarize_for_lesson_dropdown(is_student)}
lessons: lessons.where(has_lesson_plan: true).map {|lesson| lesson.summarize_for_lesson_dropdown(is_student)}
}
end

Expand Down
4 changes: 2 additions & 2 deletions dashboard/app/models/script.rb
Original file line number Diff line number Diff line change
Expand Up @@ -852,7 +852,7 @@ def get_bonus_script_levels(current_lesson)
@all_bonus_script_levels = lessons.map do |lesson|
{
lessonNumber: lesson.relative_position,
levels: lesson.script_levels.select(&:bonus)
levels: lesson.script_levels.where(bonus: true)
}
end
@all_bonus_script_levels.select! {|lesson| lesson[:levels].any?}
Expand Down Expand Up @@ -1542,7 +1542,7 @@ def summarize_for_rollup(user = nil)
# Filter out lessons that have a visible_after date in the future
filtered_lessons = lessons.select {|lesson| lesson.published?(user)}
# Only get lessons with lesson plans
filtered_lessons = filtered_lessons.select(&:has_lesson_plan)
filtered_lessons = filtered_lessons.where(has_lesson_plan: true)
summary[:lessons] = filtered_lessons.map {|lesson| lesson.summarize_for_rollup(user)}

summary
Expand Down
9 changes: 4 additions & 5 deletions dashboard/app/models/script_level.rb
Original file line number Diff line number Diff line change
Expand Up @@ -647,7 +647,7 @@ def seeding_key(seed_context, use_existing_level_keys = true)
'script_level.level_keys': get_level_keys(seed_context, use_existing_level_keys)
}

my_lesson = seed_context.lessons.select {|l| l.id == stage_id}.first
my_lesson = seed_context.lessons.find_by(id: stage_id)
raise "No Lesson found for #{self.class}: #{my_key}, Lesson ID: #{stage_id}" unless my_lesson
lesson_seeding_key = my_lesson.seeding_key(seed_context)
my_key.merge!(lesson_seeding_key) {|key, _, _| raise "Duplicate key when generating seeding_key: #{key}"}
Expand All @@ -656,7 +656,7 @@ def seeding_key(seed_context, use_existing_level_keys = true)
# the seed key for legacy scripts. Currently, this is necessary because we
# output .script_json files for all legacy scripts, even though those aren't
# going to be used for seeding yet.
my_activity_section = seed_context.activity_sections.select {|s| s.id == activity_section_id}.first
my_activity_section = seed_context.activity_sections.find_by(id: activity_section_id)

my_key['activity_section.key'] = my_activity_section.key if my_activity_section

Expand All @@ -680,10 +680,9 @@ def get_level_keys(seed_context, use_existing_level_keys = true)
if levels.loaded?
my_levels = levels
else
# TODO: this series of in-memory filters is probably inefficient
my_levels_script_levels = seed_context.levels_script_levels.select {|lsl| lsl.script_level_id == id}
my_levels_script_levels = seed_context.levels_script_levels.where(script_level_id: id)
my_levels = my_levels_script_levels.map do |lsl|
level = seed_context.levels.select {|l| l.id == lsl.level_id}.first
level = seed_context.levels.find_by(id: lsl.level_id)
raise "No level found for #{lsl}" unless level
level
end
Expand Down