Course enrollment admin is disabled by default in hawthorn, it can be enabled using a [waffle switich (`student.courseenrollment_admin`)](https://github.com/edx/edx-platform/blob/b034f4e0d42259af2e98758d792f436de9b8e1eb/common/djangoapps/student/admin.py#L39). When course enrollment admin is enabled the form doesn't work as expected because in hawthorn there's a [custom admin form](https://github.com/edx/edx-platform/blob/open-release/hawthorn.master/common/djangoapps/student/admin.py#L147). This custom admin form breaks when trying to save a course enrollment because the correct way to create a course enrollment is using [`CourseEnrollment.get_or_create_enrollment`](https://github.com/edx/edx-platform/blob/open-release/hawthorn.master/common/djangoapps/student/models.py#L1258).
This PR overrides `save()` on the admin form to use the correct method to create a course enrollment using the Django admin UI.
Also, I took the liberty to set `course` as a raw id that way there won't be a dropdown of 100s of course ids in the form and instead there's a nice lookup popup.
*JIRA tickets*: Ticket where custom admin form was introduced: https://openedx.atlassian.net/browse/LEARNER-3672
*Discussions*: Custom admin form [PR](https://github.com/edx/edx-platform/pull/17254)
*Sandbox URL*: http://188.8.131.52
*Merge deadline*: "None"
1. Go to sandbox VM: 184.108.40.206
1.a For Devstack
1.a.1 Run local devstack.
1.a.2 Create a waffle switch with the name `student.courseenrollmen_admin`.
2. Go to `/admin/admin/student/courseenrollment/`.
3. Create a new course enrollment.
*Author notes and concerns*:
1. CourseEnrollment was hidden from the admin UI, probably, because it was listing every course in the instance to populate the dropdown. This PR fixes that and it's probably safe to hide CourseEnrollment since it's a nice feature to be able to manage course enrollments from the admin UI.
[ ] @Agrendalath (Piotr)
[ ] edX reviewer[s] TBD