Skip to content

Commit 294e789

Browse files
committed
Merge branch 'master' of github.com:jrief/django-admin-sortable2
2 parents 4495471 + a6926a1 commit 294e789

File tree

8 files changed

+55
-22
lines changed

8 files changed

+55
-22
lines changed

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323

2424
strategy:
2525
matrix:
26-
python-version: ["3.9", "3.10", "3.11", "3.12"]
26+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
2727
node-version: ["18.x"]
2828
django-version: ["4.2.*", "5.0.*", "5.1.*"]
2929
exclude: # https://docs.djangoproject.com/en/5.0/faq/install/#what-python-version-can-i-use-with-django

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
## Release history of [django-admin-sortable2](https://github.com/jrief/django-admin-sortable2/)
44

5+
### 2.2.6
6+
- Fix adding new models with inlines: automatically set order of new entries.
7+
8+
### 2.2.5
9+
- Fix sorting in parallel requests.
10+
- Add support for Python 3.13.
11+
512
### 2.2.4
613
- Fix: Selected ordering is not always preserved when using "Save as new" in inline admin.
714

adminsortable2/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.2.4'
1+
__version__ = '2.2.6'

adminsortable2/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ def save_new(self, form, commit=True):
487487
obj = super().save_new(form, commit=False)
488488

489489
order_field_value = getattr(obj, self.default_order_field, None)
490-
if order_field_value is None or order_field_value < 0:
490+
if order_field_value is None or order_field_value <= 0:
491491
max_order = self.get_max_order()
492492
setattr(obj, self.default_order_field, max_order + 1)
493493
if commit:

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"devDependencies": {
99
"@types/sortablejs": "^1.15.8",
1010
"esbuild": "^0.21.2",
11-
"playwright": "^1.44.0",
11+
"playwright": "^1.51.0",
1212
"sortablejs": "^1.15.2",
1313
"tslib": "^2.6.2",
1414
"typescript": "^4.9.5",

testapp/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ class Chapter(models.Model):
9999
blank=False,
100100
null=False,
101101
db_index=True,
102+
default=0,
102103
)
103104

104105
def __str__(self):

testapp/test_e2e_inline.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from time import sleep
33
from playwright.sync_api import expect
44

5-
from testapp.models import Book
5+
from testapp.models import Book, Chapter
66

77

88
slugs = [
@@ -119,3 +119,26 @@ def test_move_begin(adminpage, slug, direction, chapter, drag_selector):
119119
expect(inline_locator.locator(f'{chapter}_set-8 input._reorder_')).to_have_value(str(start_order))
120120
expect(inline_locator.locator(f'{chapter}_set-3 input._reorder_')).to_have_value(str(start_order + direction * 4))
121121
expect_fieldset_is_ordered(inline_locator, direction)
122+
123+
124+
@pytest.mark.parametrize('slug', ["book1"])
125+
def test_create(adminpage, slug, direction, chapter, drag_selector):
126+
adminpage.get_by_role("link", name="Books (ordered by model,").click()
127+
adminpage.get_by_role("link", name="Add book1").click()
128+
adminpage.locator("#id_title").fill("test")
129+
adminpage.get_by_label("Author:").select_option("8")
130+
adminpage.locator("#id_chapter1_set-0-title").click()
131+
adminpage.locator("#id_chapter1_set-0-title").fill("111")
132+
adminpage.get_by_role("link", name="Add another Chapter1").click()
133+
adminpage.locator("#id_chapter1_set-1-title").click()
134+
adminpage.locator("#id_chapter1_set-1-title").fill("222")
135+
adminpage.get_by_role("link", name="Add another Chapter1").click()
136+
adminpage.locator("#id_chapter1_set-2-title").click()
137+
adminpage.locator("#id_chapter1_set-2-title").fill("333")
138+
adminpage.get_by_role("button", name="Save", exact=True).click()
139+
140+
assert Chapter.objects.get(title="111").my_order == 1
141+
assert Chapter.objects.get(title="222").my_order == 2
142+
assert Chapter.objects.get(title="333").my_order == 3
143+
assert Book.objects.get(title="test").my_order != 0
144+

0 commit comments

Comments
 (0)