░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/var/www/canvas/app/models/outcomes_service
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: migration_extractor.rb
# frozen_string_literal: true # # Copyright (C) 2020 - present Instructure, Inc. # # This file is part of Canvas. # # Canvas is free software: you can redistribute it and/or modify it under # the terms of the GNU Affero General Public License as published by the Free # Software Foundation, version 3 of the License. # # Canvas is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU Affero General Public License for more # details. # # You should have received a copy of the GNU Affero General Public License along # with this program. If not, see <http://www.gnu.org/licenses/>. module OutcomesService class MigrationExtractor def initialize(migration) @migration = migration end def learning_outcomes(context) @migration.imported_migration_items_by_class(LearningOutcome).filter_map do |item| outcome_attributes(item) if item.context == context end end def learning_outcome_groups(context) @migration.imported_migration_items_by_class(LearningOutcomeGroup).map do |item| group_attributes(item) end.prepend(group_attributes(context.root_outcome_group)) end def learning_outcome_links @migration.imported_migration_items_by_class(ContentTag).filter_map do |item| link_attributes(item) if valid_link?(item) end end private def outcome_attributes(learning_outcome) attrs = learning_outcome.attributes.transform_keys(&:to_sym) attrs[:$canvas_learning_outcome_id] = attrs.delete(:id) attrs[:rubric_criterion] = attrs.delete(:data)[:rubric_criterion] attrs.except(:migration_id_2, :vendor_guid_2, :root_account_id, :context_type, :context_id) end def group_attributes(learning_outcome_group) attrs = learning_outcome_group.attributes.transform_keys(&:to_sym) attrs[:$canvas_learning_outcome_group_id] = attrs.delete(:id) attrs[:parent_outcome_group_id] = attrs.delete(:learning_outcome_group_id) attrs.except(:root_learning_outcome_group_id, :root_account_id, :migration_id_2, :vendor_guid_2) end def valid_link?(item) item.tag_type == "learning_outcome_association" && item.associated_asset_type == "LearningOutcomeGroup" && item.content_type == "LearningOutcome" end def link_attributes(learning_outcome_link) { "$canvas_learning_outcome_link_id": learning_outcome_link.id, "$canvas_learning_outcome_group_id": learning_outcome_link.associated_asset_id, "$canvas_learning_outcome_id": learning_outcome_link.content_id } end end end
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📄 migration_extractor.rb
RB
2.6 KB
2023-09-24 03:36
EDIT
📄 migration_service.rb
RB
7 KB
2023-09-24 03:36
EDIT
📄 service.rb
RB
2.9 KB
2023-09-24 03:36
EDIT