Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Outcomes Migration and Technical Issues

From MoodleDocs

Introduction

Because the Outcomes feature already exists, and because some clients are using it, we need to build a relatively elegant way to maintain data and to preserve the work that was already completed in previous versions. At Moodlerooms, our simple analysis of roughly 900 clients shows that only about 50 clients are using it, so roughly 5.5%. Of those that are using it, only 20 clients (2% have more than 500 graded outcomes).

NOTE: Moodlerooms will actually be running the two outcomes systems side by side for one of its releases to ease the transition.

Migration Goals

  • Preserve and convert all outcomes from previous versions into outcomes in the new system
  • Preserve all mappings of outcomes to courses
  • Preserve all mappings of outcomes to activities
  • Elegantly remove the dependency on Scales from the mapping of outcomes.
  • Maintain historically proficiency data by converting scales to proficient or not proficient.
  • Create a unique identifier that will be unique outside of the Moodle Instance, so that Outcomes can be integrated with other platforms (Academic Benchmarks, xpLor, etc.)

Outcome Migration

  • All migrated site wide outcomes will be placed into an outcome set called "Upgraded Site Outcomes"
  • All course specific outcomes are migrated to a "Upgraded X Outcomes" set where X is the course shortname. So, one outcome set per course that has course specific outcomes.
  • Users can later move the individual outcomes into new outcome sets that get created
  • On outcome migration, we will store a reference to the old outcome and the old scale

Scale Migration

Migrating away from scales will be the most difficult part of this, and we are going to have slight data loss, although the output will actually be more meaningful. Here's the proposed plan:

  • Prior to the upgrade, we will provide a way for administrators to go through the Scales that are tied to Outcomes, an define a threshold that means proficiency
  • On upgrade, we will create new records for the proficiency tables that show whether or not the user is proficient based on their score on the scale
  • We remove the scale as the outcome is upgraded.
  • We need to store a link to the old outcome and to the old scale that was used, in order to deal with any migration problems.

See Also