Skip to content

Commit 5bbdb41

Browse files
committed
fix: Django 4.1 autocomplete. fixes #229
1 parent 22ef53e commit 5bbdb41

File tree

8 files changed

+51
-4
lines changed

8 files changed

+51
-4
lines changed

.github/workflows/test.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,26 @@ jobs:
88
fail-fast: false
99
matrix:
1010
python-version: ["3.7", "3.8", "3.9", "3.10"]
11-
django-version: ["2.2", "3.2", "4.0"]
11+
django-version: ["2.2", "3.2", "4.0", "4.1"]
1212
grappelli: ["0"]
1313
exclude:
1414
- python-version: "3.7"
1515
django-version: "4.0"
16+
- python-version: "3.7"
17+
django-version: "4.1"
1618
- python-version: "3.10"
1719
django-version: "2.2"
1820
# Exclude some version combos that don't need to be tested (since
1921
# the combination of python and django versions is unlikely to
2022
# be germane to django-nested-admin)
2123
- python-version: "3.8"
2224
django-version: "3.2"
25+
- python-version: "3.8"
26+
django-version: "4.1"
2327
- python-version: "3.9"
2428
django-version: "4.0"
29+
- python-version: "3.9"
30+
django-version: "4.1"
2531
include:
2632
- grappelli: "0"
2733
name-suffix: ""

CHANGELOG.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ Changelog
55

66
* Remove python 2.x compatibility, drop support for EOL Django versions
77
(all versions before 3.2)
8+
* Fixed: Django 4.1 autocomplete on newly added nested inlines by dispatching
9+
native javascript CustomEvent events for ``formset:added`` and
10+
``formset:removed``. Fixes `#229`_.
11+
12+
.. _#229: https://github.com/theatlantic/django-nested-admin/issues/229
813

914
**3.4.0 (Dec 20, 2021)**
1015

nested_admin/static/nested_admin/dist/nested_admin.js

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nested_admin/static/nested_admin/dist/nested_admin.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nested_admin/static/nested_admin/dist/nested_admin.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nested_admin/static/nested_admin/dist/nested_admin.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nested_admin/static/nested_admin/src/nested-admin/jquery.djangoformset.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,14 @@ class DjangoFormset {
228228

229229
// Also fire using the events that were added in Django 1.9
230230
$(document).trigger("formset:removed", [$form, this.prefix]);
231+
232+
document.dispatchEvent(
233+
new CustomEvent("formset:removed", {
234+
detail: {
235+
formsetName: this.prefix,
236+
},
237+
})
238+
);
231239
}
232240
delete(form) {
233241
var self = this,
@@ -462,6 +470,17 @@ class DjangoFormset {
462470
// Also fire using the events that were added in Django 1.9
463471
$(document).trigger("formset:added", [$form, this.prefix]);
464472

473+
try {
474+
$form.get(0).dispatchEvent(
475+
new CustomEvent("formset:added", {
476+
bubbles: true,
477+
detail: {
478+
formsetName: this.prefix,
479+
},
480+
})
481+
);
482+
} catch (e) {}
483+
465484
return $form;
466485
}
467486
_fillGap(index, isInitial) {

tox.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ envlist =
33
py{36,37,38,39}-dj22-{grp,nogrp}
44
py{36,37,38,39,310}-dj32-{grp,nogrp}
55
py{38,39,310}-dj40-nogrp
6+
py{38,39,310}-dj41-nogrp
67
black,flake8
78
skipsdist=True
89

@@ -84,6 +85,7 @@ DJANGO =
8485
2.2: dj22
8586
3.2: dj32
8687
4.0: dj40
88+
4.1: dj41
8789
GRAPPELLI =
8890
0: nogrp
8991
1: grp

0 commit comments

Comments
 (0)