-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Open
Description
The modulestore_migrator app was added by this PR:
Its immediate purpose was to support the Course-to-Library Import API and UI, and it has only been tested with courses as sources. However, it was intentionally designed to take any modulestore learning context as a source, including legacy libraries. So, we plan to use the modulestore_migrator in order to implement the Legacy Libraries migration as well.
AC
Test the modulestore_migrator tool with a legacy library as a source. Aspects to test:
- Legacy libraries containing a mix of text, videos, and problems, including at least one advanced problem with and
loncapa/python
block and multiple responses. - Both the Django admin tool and the REST API at
/api/modulestore_migrator/v1
(specified here). - Specifying a target collection that doesn't exist, and one that does exist.
- Both
forward_source_to_target=true
andforward_source_to_target=false
. (In the final product, the frontend will need to specifytrue
for the first migration andfalse
for subsequent migrations.)
Ensure that:
- The content all renders correctly in the target library.
- The expected collection is created or updated.
- If
forward_source_to_target=true
, thenforwarded
is set on the ModulestoreSource and ModulestoreBlockSource objects.. Iffalse
, thenforwarded
is left alone. For context, theforwarded
field will be used by Follow migrated LegacyLibraryContentBlock references frontend-app-authoring#2386. - Performance is reasonable for legacy libraries of the size that we expect.
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Backlog - Is resourced
Status
No status