fix: resolve jQuery conflict breaking admin autocomplete fields in Django 5#4718
fix: resolve jQuery conflict breaking admin autocomplete fields in Django 5#4718iloveagent57 wants to merge 1 commit intoopenedx:masterfrom
Conversation
|
Thanks for the pull request, @iloveagent57! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
|
@UsamaSadiq , @openedx/committers-course-discovery could anyone please check and help review/merge this PR |
There was a problem hiding this comment.
Pull request overview
Fixes Django 5 admin autocomplete/select2 sorting breakage caused by conflicting jQuery instances by ensuring Django admin’s django.jQuery is used consistently and isn’t overwritten.
Changes:
- Added a
jquery_shim.jsthat exposesdjango.jQueryas global$/jQueryfor jQuery UI compatibility. - Wrapped
sortable_select.jsin an IIFE that explicitly usesdjango.jQuery. - Removed the bower-provided jQuery include from affected admin
Mediadefinitions (to prevent overwriting the admin jQuery instance). - Marked an API view test as skipped due to flaky query-count assertions.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| course_discovery/static/js/sortable_select.js | Ensures sortable/select2 logic runs against django.jQuery via an IIFE wrapper. |
| course_discovery/static/js/jquery_shim.js | Re-exposes django.jQuery as global $/jQuery so jQuery UI attaches to the correct instance. |
| course_discovery/apps/course_metadata/admin.py | Updates admin Media JS ordering and removes conflicting bower jQuery include. |
| course_discovery/apps/api/v1/tests/test_views/test_courses.py | Skips a flaky endpoint test (reduces coverage). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
jajjibhai008
left a comment
There was a problem hiding this comment.
See the Copilot suggestions. Other than that looks good to me.
|
Hello @UsamaSadiq, |
…ango 5 The admin's SortedModelSelect2Multiple widgets were broken because: 1. Django admin namespaces jQuery as django.jQuery and removes $ from global scope 2. The Media class was loading bower's jQuery which overwrote $ with a new instance 3. Select2 was attached to django.jQuery but code was calling $().select2() This fix: - Adds jquery_shim.js to expose django.jQuery as global $ and jQuery - Wraps sortable_select.js in IIFE using django.jQuery - Removes conflicting bower jQuery from Media classes ENT-11757 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
c639487 to
3114e62
Compare
|
I just force pushed those changes suggested by copilot, thanks for taking a look @jajjibhai008 |
The admin's SortedModelSelect2Multiple widgets were broken because:
This fix:
ENT-11757
🤖 Generated with Claude Code