From 882beab045046e193d01b1b30ebaa5e646ae756a Mon Sep 17 00:00:00 2001 From: Julian Wachholz Date: Sun, 21 Dec 2025 16:57:43 +0100 Subject: [PATCH 1/2] feat: allow overriding widget template name --- sortedm2m/forms.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sortedm2m/forms.py b/sortedm2m/forms.py index f2ec50f..74d3fba 100644 --- a/sortedm2m/forms.py +++ b/sortedm2m/forms.py @@ -8,6 +8,8 @@ class SortedCheckboxSelectMultiple(forms.CheckboxSelectMultiple): + template_name = 'sortedm2m/sorted_checkbox_select_multiple_widget.html' + class Media: js = ( 'admin/js/jquery.init.js', @@ -72,7 +74,7 @@ def render(self, name, value, attrs=None, choices=(), renderer=None): # pylint: selected = ordered html = render_to_string( - 'sortedm2m/sorted_checkbox_select_multiple_widget.html', + self.template_name, {'selected': selected, 'unselected': unselected}) return mark_safe(html) From 955c7da4694c98037a56f680223b3f972559cb89 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 21 Dec 2025 15:58:59 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- sortedm2m/admin.py | 5 +++-- sortedm2m/fields.py | 2 +- sortedm2m/forms.py | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sortedm2m/admin.py b/sortedm2m/admin.py index da6a6c2..9511a6a 100644 --- a/sortedm2m/admin.py +++ b/sortedm2m/admin.py @@ -1,7 +1,8 @@ from django import forms from django.conf import settings -from django.utils import translation from django.contrib.admin.widgets import AutocompleteSelectMultiple +from django.utils import translation + class OrderedAutocomplete(AutocompleteSelectMultiple): def optgroups(self, name, value, attr=None): @@ -48,7 +49,7 @@ def optgroups(self, name, value, attr=None): class Media: extra = "" if settings.DEBUG else ".min" lang = translation.get_language() - js = ( + js = ( "admin/js/vendor/jquery/jquery%s.js" % extra, "admin/js/vendor/select2/select2.full%s.js" % extra, ) + ( diff --git a/sortedm2m/fields.py b/sortedm2m/fields.py index a7e55b9..b938b09 100644 --- a/sortedm2m/fields.py +++ b/sortedm2m/fields.py @@ -55,7 +55,7 @@ def set(self, objs, *, clear=False, through_defaults=None): # Force evaluation of `objs` in case it's a queryset whose value # could be affected by `manager.clear()`. Refs #19816. # objs = tuple(objs) - + db = router.db_for_write(self.through, instance=self.instance) with transaction.atomic(using=db, savepoint=False): old_ids = list( diff --git a/sortedm2m/forms.py b/sortedm2m/forms.py index 74d3fba..bd1b355 100644 --- a/sortedm2m/forms.py +++ b/sortedm2m/forms.py @@ -108,4 +108,4 @@ def has_changed(self, initial, data): class SortedCheckboxMultipleChoiceField(SortedMultipleChoiceField): widget = SortedCheckboxSelectMultiple - +