django-smartbase-admin 1.0.42__py3-none-any.whl → 1.0.43__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- django_smartbase_admin/admin/admin_base.py +3 -1
- django_smartbase_admin/admin/widgets.py +38 -4
- django_smartbase_admin/engine/admin_base_view.py +1 -0
- django_smartbase_admin/engine/configuration.py +6 -0
- django_smartbase_admin/static/sb_admin/dist/main.js +1 -1
- django_smartbase_admin/static/sb_admin/dist/table.js +1 -1
- django_smartbase_admin/static/sb_admin/src/js/datepicker.js +0 -1
- django_smartbase_admin/static/sb_admin/src/js/table_modules/views_module.js +27 -6
- django_smartbase_admin/templates/sb_admin/filter_widgets/choice_field.html +1 -0
- django_smartbase_admin/templates/sb_admin/inlines/stacked_inline.html +9 -3
- django_smartbase_admin/templates/sb_admin/sb_admin_base_no_sidebar.html +1 -1
- django_smartbase_admin/utils.py +94 -0
- {django_smartbase_admin-1.0.42.dist-info → django_smartbase_admin-1.0.43.dist-info}/METADATA +1 -1
- {django_smartbase_admin-1.0.42.dist-info → django_smartbase_admin-1.0.43.dist-info}/RECORD +16 -16
- {django_smartbase_admin-1.0.42.dist-info → django_smartbase_admin-1.0.43.dist-info}/LICENSE.md +0 -0
- {django_smartbase_admin-1.0.42.dist-info → django_smartbase_admin-1.0.43.dist-info}/WHEEL +0 -0
|
@@ -71,7 +71,7 @@ except ImportError:
|
|
|
71
71
|
|
|
72
72
|
postrgres_enabled = None
|
|
73
73
|
try:
|
|
74
|
-
from django.contrib.postgres.forms import SimpleArrayField
|
|
74
|
+
from django.contrib.postgres.forms import SimpleArrayField, DateTimeRangeField
|
|
75
75
|
|
|
76
76
|
postrgres_enabled = True
|
|
77
77
|
except ImportError:
|
|
@@ -118,6 +118,7 @@ from django_smartbase_admin.admin.widgets import (
|
|
|
118
118
|
SBAdminMultipleChoiceInlineWidget,
|
|
119
119
|
SBAdminColorWidget,
|
|
120
120
|
SBAdminFilerFileWidget,
|
|
121
|
+
SBAdminDateTimeRangeWidget,
|
|
121
122
|
)
|
|
122
123
|
from django_smartbase_admin.engine.admin_base_view import (
|
|
123
124
|
SBAdminBaseListView,
|
|
@@ -177,6 +178,7 @@ class SBAdminFormFieldWidgetsMixin:
|
|
|
177
178
|
}
|
|
178
179
|
if postrgres_enabled:
|
|
179
180
|
formfield_widgets[SimpleArrayField] = SBAdminArrayWidget
|
|
181
|
+
formfield_widgets[DateTimeRangeField] = SBAdminDateTimeRangeWidget
|
|
180
182
|
if django_cms_attributes:
|
|
181
183
|
formfield_widgets[AttributesFormField] = SBAdminAttributesWidget
|
|
182
184
|
if color_field_enabled:
|
|
@@ -11,6 +11,7 @@ from django.contrib.admin.widgets import (
|
|
|
11
11
|
ForeignKeyRawIdWidget,
|
|
12
12
|
)
|
|
13
13
|
from django.contrib.auth.forms import ReadOnlyPasswordHashWidget
|
|
14
|
+
from django.contrib.postgres.forms import RangeWidget
|
|
14
15
|
from django.core.exceptions import (
|
|
15
16
|
FieldDoesNotExist,
|
|
16
17
|
ImproperlyConfigured,
|
|
@@ -41,7 +42,7 @@ from django_smartbase_admin.services.thread_local import SBAdminThreadLocalServi
|
|
|
41
42
|
from django_smartbase_admin.templatetags.sb_admin_tags import (
|
|
42
43
|
SBAdminJSONEncoder,
|
|
43
44
|
)
|
|
44
|
-
from django_smartbase_admin.utils import is_modal
|
|
45
|
+
from django_smartbase_admin.utils import is_modal, convert_django_to_flatpickr_format
|
|
45
46
|
|
|
46
47
|
try:
|
|
47
48
|
# Django >= 5.0
|
|
@@ -261,7 +262,9 @@ class SBAdminDateWidget(SBAdminBaseWidget, forms.DateInput):
|
|
|
261
262
|
"flatpickrOptions": {
|
|
262
263
|
"dateFormat": "Y-m-d",
|
|
263
264
|
"altInput": True,
|
|
264
|
-
"altFormat":
|
|
265
|
+
"altFormat": convert_django_to_flatpickr_format(
|
|
266
|
+
get_format("SHORT_DATE_FORMAT")
|
|
267
|
+
),
|
|
265
268
|
},
|
|
266
269
|
},
|
|
267
270
|
cls=SBAdminJSONEncoder,
|
|
@@ -286,9 +289,30 @@ class SBAdminTimeWidget(SBAdminBaseWidget, forms.TimeInput):
|
|
|
286
289
|
class SBAdminDateTimeWidget(SBAdminBaseWidget, forms.DateTimeInput):
|
|
287
290
|
template_name = "sb_admin/widgets/datetime.html"
|
|
288
291
|
|
|
289
|
-
def __init__(self, form_field=None, attrs=None):
|
|
292
|
+
def __init__(self, form_field=None, attrs=None, format=None):
|
|
290
293
|
super().__init__(
|
|
291
|
-
form_field,
|
|
294
|
+
form_field,
|
|
295
|
+
format="%Y-%m-%d %H:%M",
|
|
296
|
+
attrs={
|
|
297
|
+
"class": "input js-datetimepicker",
|
|
298
|
+
"data-sbadmin-datepicker": self.get_data(),
|
|
299
|
+
"placeholder": get_datetime_placeholder()["date"],
|
|
300
|
+
**(attrs or {}),
|
|
301
|
+
},
|
|
302
|
+
)
|
|
303
|
+
|
|
304
|
+
def get_data(self):
|
|
305
|
+
return json.dumps(
|
|
306
|
+
{
|
|
307
|
+
"flatpickrOptions": {
|
|
308
|
+
"dateFormat": "Y-m-d H:i",
|
|
309
|
+
"altInput": True,
|
|
310
|
+
"altFormat": convert_django_to_flatpickr_format(
|
|
311
|
+
get_format("SHORT_DATETIME_FORMAT")
|
|
312
|
+
),
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
cls=SBAdminJSONEncoder,
|
|
292
316
|
)
|
|
293
317
|
|
|
294
318
|
|
|
@@ -965,3 +989,13 @@ class SBAdminTreeWidget(SBAdminTreeWidgetMixin, SBAdminAutocompleteWidget):
|
|
|
965
989
|
if input_value in children_ids:
|
|
966
990
|
raise ValidationError(_("Cannot set parent to it's own child"))
|
|
967
991
|
return parsed_value
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
class SBAdminDateTimeRangeWidget(SBAdminBaseWidget, RangeWidget):
|
|
995
|
+
template_name = "sb_admin/widgets/multiwidget.html"
|
|
996
|
+
|
|
997
|
+
def __init__(self, form_field=None, attrs=None):
|
|
998
|
+
super().__init__(
|
|
999
|
+
form_field,
|
|
1000
|
+
base_widget=SBAdminDateTimeWidget(),
|
|
1001
|
+
)
|
|
@@ -240,6 +240,7 @@ class SBAdminBaseView(object):
|
|
|
240
240
|
"view_id": self.get_id(),
|
|
241
241
|
"configuration": request.request_data.configuration,
|
|
242
242
|
"request_data": request.request_data,
|
|
243
|
+
"admin_title": request.request_data.configuration.get_admin_title(),
|
|
243
244
|
"add_label": self.get_add_label(request, object_id),
|
|
244
245
|
"change_label": self.get_change_label(request, object_id),
|
|
245
246
|
"DETAIL_STRUCTURE_RIGHT_CLASS": DETAIL_STRUCTURE_RIGHT_CLASS,
|
|
@@ -186,6 +186,7 @@ class SBAdminRoleConfiguration(metaclass=Singleton):
|
|
|
186
186
|
filters_version = FilterVersions.FILTERS_VERSION_1
|
|
187
187
|
default_color_scheme = ColorScheme.AUTO
|
|
188
188
|
login_view_class = LoginView
|
|
189
|
+
admin_title = "SBAdmin"
|
|
189
190
|
|
|
190
191
|
def __init__(
|
|
191
192
|
self,
|
|
@@ -196,6 +197,7 @@ class SBAdminRoleConfiguration(metaclass=Singleton):
|
|
|
196
197
|
filters_version=None,
|
|
197
198
|
default_color_scheme=None,
|
|
198
199
|
login_view_class=None,
|
|
200
|
+
admin_title=None,
|
|
199
201
|
) -> None:
|
|
200
202
|
super().__init__()
|
|
201
203
|
self.default_view = default_view or self.default_view or []
|
|
@@ -207,6 +209,7 @@ class SBAdminRoleConfiguration(metaclass=Singleton):
|
|
|
207
209
|
self.filters_version = filters_version or self.filters_version
|
|
208
210
|
self.default_color_scheme = default_color_scheme or self.default_color_scheme
|
|
209
211
|
self.login_view_class = login_view_class or self.login_view_class
|
|
212
|
+
self.admin_title = admin_title or self.admin_title
|
|
210
213
|
|
|
211
214
|
def init_registered_views(self):
|
|
212
215
|
registered_views = []
|
|
@@ -386,3 +389,6 @@ class SBAdminRoleConfiguration(metaclass=Singleton):
|
|
|
386
389
|
request,
|
|
387
390
|
) -> bool:
|
|
388
391
|
return not is_modal(request)
|
|
392
|
+
|
|
393
|
+
def get_admin_title(self):
|
|
394
|
+
return self.admin_title
|