Skip to content

Commit aa91c21

Browse files
triv: added SBAdminPageSelectWidget (#110)
* triv: added SBAdminPageSelectWidget * triv: template * triv: bump version
1 parent 0d3557b commit aa91c21

File tree

4 files changed

+36
-1
lines changed

4 files changed

+36
-1
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 = "1.0.43"
3+
version = "1.0.44"
44
description = ""
55
authors = ["SmartBase <info@smartbase.sk>"]
66
readme = "README.md"

src/django_smartbase_admin/admin/admin_base.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,14 @@
9393
except ImportError:
9494
pass
9595

96+
cms_enabled = None
97+
try:
98+
from cms.forms.fields import PageSelectFormField
99+
100+
cms_enabled = True
101+
except ImportError:
102+
pass
103+
96104
from django_smartbase_admin.admin.widgets import (
97105
SBAdminTextInputWidget,
98106
SBAdminTextareaWidget,
@@ -119,6 +127,7 @@
119127
SBAdminColorWidget,
120128
SBAdminFilerFileWidget,
121129
SBAdminDateTimeRangeWidget,
130+
SBAdminPageSelectWidget,
122131
)
123132
from django_smartbase_admin.engine.admin_base_view import (
124133
SBAdminBaseListView,
@@ -183,6 +192,8 @@ class SBAdminFormFieldWidgetsMixin:
183192
formfield_widgets[AttributesFormField] = SBAdminAttributesWidget
184193
if color_field_enabled:
185194
db_field_widgets[ColorField] = SBAdminColorWidget
195+
if cms_enabled:
196+
formfield_widgets[PageSelectFormField] = SBAdminPageSelectWidget
186197

187198
django_widget_to_widget = {
188199
forms.PasswordInput: SBAdminPasswordInputWidget,

src/django_smartbase_admin/admin/widgets.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -999,3 +999,25 @@ def __init__(self, form_field=None, attrs=None):
999999
form_field,
10001000
base_widget=SBAdminDateTimeWidget(),
10011001
)
1002+
1003+
1004+
try:
1005+
from cms.forms.widgets import PageSelectWidget
1006+
1007+
class SBAdminPageSelectWidget(SBAdminBaseWidget, PageSelectWidget):
1008+
template_name = "sb_admin/widgets/pageselectwidget.html"
1009+
1010+
def __init__(self, form_field=None, attrs=None):
1011+
self.form_field = form_field
1012+
if attrs is not None:
1013+
self.attrs = attrs.copy()
1014+
else:
1015+
self.attrs = {}
1016+
self.choices = []
1017+
super(PageSelectWidget, self).__init__(
1018+
(SBAdminSelectWidget, SBAdminSelectWidget, SBAdminSelectWidget),
1019+
attrs={"class": "input", **(self.attrs or {})},
1020+
)
1021+
1022+
except ImportError:
1023+
pass
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{% include 'sb_admin/widgets/multiwidget.html' %}
2+
{{ widget.script_init|safe }}

0 commit comments

Comments
 (0)