BB-732 Fix Django admin form for Course Enrollment

Description

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://147.135.195.136

*Merge deadline*: "None"

*Testing instructions*:

1. Go to sandbox VM: 147.135.195.136

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.

*Reviewers*

  • [ ] @Agrendalath (Piotr)

  • [ ] edX reviewer[s] TBD

Assignee

David Ormsbee

Reporter

Open Source Pull Request Bot

Contributor Name

Josue Balandrano Coronel

Repo

edx/edx-platform

Customer

Epic Link

None

OSCM Assignee

None

Platform Map Area (Levels 1 & 2)

None

Platform Map Area (Levels 3 & 4)

None

Blended Hour Utilization Percentage

None

Priority

CAT-2
Configure