* Fix all stylelint errors
For any errors that fixing would require changing the output of the css disable stylelint for that line instead of modifying.
* Update quality.py
Make stylelint quality check pass when there are no errors
* Delete empty selectors
The XBlockPackageStorage used to return offset-naive datetime objects
which were compared to offset-aware objects when we ran static asset
collection:
./manage.py lms collectstatic
Close CRI-191
In this case,
* unenroll the currently linked learner from the courses associated with related ProgramCourseEnrollments
* for each course the is enrolled in as part of a ProgramCourseEnrollment, if the coures has an audit track, then move the enrollment into the audit track. Otherwise, keep the learner's enrollment in the existing track.
* link the new user to the ProgramEnrollment
* enroll the new user in the Master's track in the courses associated with related ProgramCourseEnrollments
This performs a dark launch compare of the existing implementation
(still in use) for fetching TPA provider configs and a new
implementation, recording metrics on exceptions and mismatches.
The new implementation should have two benefits, once we're switched
over:
- Fix 1+N queries on login page view where the site for each config
was fetched in a loop (ARCHBOM-1139)
- Don't allow configs with the same key on different sites to
interfere with each other (regression test added)
The new impl does not use TieredCache, but only the request cache,
which we may want to adjust later.
* Pull business logic of ProgramCourseEnrollmentOverviewView
out of view class and into utils.py.
* Add UserProgramCourseEnrollmentsView, which is a paginated
version of ProgramCourseEnrollmentOverviewView with a
URL that is parameterized on the user (to enable masquerading
in MST-109).
* Add get_certificates_for_user_by_course_keys to certs API
to make enrollments overviews REST API use fewer SQL queries.
* Document new course cards API with edx-api-doc-tools.
In a follow-up ticket, the Programs Learner Portal will switch
to the new paginatd API in order to speed up its page load.
MST-126
Run isort -rc lms/djangoapps/program_enrollments
Run pylint lms/djangoapps/program_enrollment and fix messages.
Stop pylint from complaining about DictFactoryBase instances