To get this implemented quickly but still allow some flexibility, I'm implementing two command line keyword options, --sites and --courses. Sites takes one or more site domains. Course takes one or more string course ids. If --courses is used, it ignores the --sites argument.
We currently require specifying sites or course instead of defaulting to process all sites / all courses. While this has usability issues, we do it because this is potentially a quite expensive command, particularly on large multi-site Open edX deployments. This is where it could use UX improvement.
One potential small improvement might be to allow use of both params. This could take the form of processing both all sites listed in the --sites argument and all the courses in the --courses argument, skipping over any courses in the --courses for courses that exist in any of the sites in the --sites parameter. Another form would be to only process course ids if they exist in sites provided in the --sites argument. We should think over this. Maybe we don't do either.
Another potential improvement is to provide a JSON or YAML file parameter that would list the site domains and/or course ids to process. What would be helpful here would be to report on sites and/or courses that need updating.
Another potential improvement is to do arbitrary limiting the number of enrollments to be processed. For example: "process 100,000 out of date enrollments"
Since A. I don't have time to implement these options with appropriate test coverage and B. we might not want these or may come up with some other option, I'm just describing the options here for discussion and linking this issue into the docstring for the backfill management command.
Improve "Backfill Enrollment Data" management command
I'm working on a PR to update the management comment
backfill_figures_enrollment_data
to use the new workflow as described here: https://github.com/appsembler/figures/issues/428To get this implemented quickly but still allow some flexibility, I'm implementing two command line keyword options,
--sites
and--courses
. Sites takes one or more site domains. Course takes one or more string course ids. If--courses
is used, it ignores the--sites
argument.We currently require specifying sites or course instead of defaulting to process all sites / all courses. While this has usability issues, we do it because this is potentially a quite expensive command, particularly on large multi-site Open edX deployments. This is where it could use UX improvement.
One potential small improvement might be to allow use of both params. This could take the form of processing both all sites listed in the
--sites
argument and all the courses in the--courses
argument, skipping over any courses in the--courses
for courses that exist in any of the sites in the--sites
parameter. Another form would be to only process course ids if they exist in sites provided in the--sites
argument. We should think over this. Maybe we don't do either.Another potential improvement is to provide a JSON or YAML file parameter that would list the site domains and/or course ids to process. What would be helpful here would be to report on sites and/or courses that need updating.
Another potential improvement is to do arbitrary limiting the number of enrollments to be processed. For example: "process 100,000 out of date enrollments"
Since A. I don't have time to implement these options with appropriate test coverage and B. we might not want these or may come up with some other option, I'm just describing the options here for discussion and linking this issue into the docstring for the backfill management command.