Skip to content

Commit 6f93dde

Browse files
author
oko-x
committed
triv: allow overriding of default widget globally
1 parent 40a1928 commit 6f93dde

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "django-smartbase-admin"
3-
version = "0.2.23"
3+
version = "0.2.24"
44
description = ""
55
authors = ["SmartBase <[email protected]>"]
66
readme = "README.md"

src/django_smartbase_admin/admin/admin_base.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,16 @@ class SBAdminFormFieldWidgetsMixin:
117117
}
118118

119119
def get_form_field_widget_class(self, form_field, db_field, request):
120-
return self.formfield_widgets.get(form_field.__class__)
120+
default_widget_class = self.formfield_widgets.get(form_field.__class__)
121+
return request.request_data.configuration.get_form_field_widget_class(
122+
self, request, form_field, db_field, default_widget_class
123+
)
121124

122-
def get_autocomplete_widget(self, request, form_field, model, multiselect=False):
125+
def get_autocomplete_widget(
126+
self, request, form_field, db_field, model, multiselect=False
127+
):
123128
return request.request_data.configuration.get_autocomplete_widget(
124-
request, form_field, model, multiselect
129+
self, request, form_field, db_field, model, multiselect
125130
)
126131

127132
def assign_widget_to_form_field(self, form_field, db_field=None, request=None):
@@ -163,6 +168,7 @@ def formfield_for_foreignkey(self, db_field, request, **kwargs):
163168
form_field_widget_instance = self.get_autocomplete_widget(
164169
request,
165170
form_field,
171+
db_field,
166172
db_field.target_field.model,
167173
multiselect=False,
168174
)

src/django_smartbase_admin/engine/configuration.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,13 +155,20 @@ def has_permission(
155155
return allowed
156156
return request.user.is_staff
157157

158-
def get_autocomplete_widget(self, request, form_field, model, multiselect=False):
158+
def get_autocomplete_widget(
159+
self, view, request, form_field, db_field, model, multiselect=False
160+
):
159161
from django_smartbase_admin.admin.widgets import SBAdminAutocompleteWidget
160162

161163
return SBAdminAutocompleteWidget(
162164
form_field, model=model, multiselect=multiselect
163165
)
164166

167+
def get_form_field_widget_class(
168+
self, view, request, form_field, db_field, default_widget_class
169+
):
170+
return default_widget_class
171+
165172
def apply_global_filter_to_queryset(
166173
self, qs, request, request_data, global_filter_data_map
167174
):

0 commit comments

Comments
 (0)