django-smartbase-admin 0.2.54__py3-none-any.whl → 1.0.38__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/actions/admin_action_list.py +74 -38
- django_smartbase_admin/actions/advanced_filters.py +24 -1
- django_smartbase_admin/admin/admin_base.py +401 -96
- django_smartbase_admin/admin/site.py +93 -35
- django_smartbase_admin/admin/widgets.py +589 -26
- django_smartbase_admin/apps.py +2 -0
- django_smartbase_admin/engine/actions.py +34 -16
- django_smartbase_admin/engine/admin_base_view.py +252 -115
- django_smartbase_admin/engine/configuration.py +186 -4
- django_smartbase_admin/engine/const.py +6 -0
- django_smartbase_admin/engine/dashboard.py +44 -23
- django_smartbase_admin/engine/fake_inline.py +15 -11
- django_smartbase_admin/engine/field.py +42 -12
- django_smartbase_admin/engine/field_formatter.py +22 -8
- django_smartbase_admin/engine/filter_widgets.py +309 -20
- django_smartbase_admin/engine/menu_item.py +8 -5
- django_smartbase_admin/engine/modal_view.py +12 -7
- django_smartbase_admin/engine/request.py +2 -0
- django_smartbase_admin/integration/__init__.py +0 -0
- django_smartbase_admin/integration/django_cms.py +43 -0
- django_smartbase_admin/locale/sk/LC_MESSAGES/django.mo +0 -0
- django_smartbase_admin/locale/sk/LC_MESSAGES/django.po +268 -37
- django_smartbase_admin/migrations/0005_sbadminuserconfiguration.py +26 -0
- django_smartbase_admin/migrations/0006_alter_sbadminuserconfiguration_color_scheme.py +18 -0
- django_smartbase_admin/models.py +22 -0
- django_smartbase_admin/monkeypatch/admin_readonly_field_monkeypatch.py +96 -0
- django_smartbase_admin/monkeypatch/fake_inline_monkeypatch.py +1 -1
- django_smartbase_admin/querysets.py +3 -0
- django_smartbase_admin/services/configuration.py +30 -0
- django_smartbase_admin/services/thread_local.py +6 -19
- django_smartbase_admin/services/views.py +80 -13
- django_smartbase_admin/services/xlsx_export.py +6 -0
- django_smartbase_admin/static/sb_admin/build/tailwind.config.js +1 -0
- django_smartbase_admin/static/sb_admin/build/tailwind_config_partials/colors.js +4 -0
- django_smartbase_admin/static/sb_admin/build/tailwind_config_partials/spacing.js +1 -0
- django_smartbase_admin/static/sb_admin/build/webpack.common.js +11 -8
- django_smartbase_admin/static/sb_admin/css/ckeditor/ckeditor_content_dark.css +208 -0
- django_smartbase_admin/static/sb_admin/css/coloris/coloris.min.css +1 -0
- django_smartbase_admin/static/sb_admin/dist/calendar.js +1 -0
- django_smartbase_admin/static/sb_admin/dist/calendar_style.css +1 -0
- django_smartbase_admin/static/sb_admin/dist/calendar_style.js +0 -0
- django_smartbase_admin/static/sb_admin/dist/chart.js +1 -1
- django_smartbase_admin/static/sb_admin/dist/main.js +1 -1
- django_smartbase_admin/static/sb_admin/dist/main_style.css +1 -1
- django_smartbase_admin/static/sb_admin/dist/table.js +1 -1
- django_smartbase_admin/static/sb_admin/dist/tree_widget.js +1 -0
- django_smartbase_admin/static/sb_admin/dist/tree_widget_style.css +1 -0
- django_smartbase_admin/static/sb_admin/dist/tree_widget_style.js +0 -0
- django_smartbase_admin/static/sb_admin/fancytree/jquery.fancytree-all-deps.min.js +1 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-csv.svg +11 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-doc.svg +11 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-docx.svg +11 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-other.svg +13 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-pdf.svg +11 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-ppt.svg +11 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-xls.svg +11 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-xlsx.svg +11 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-zip.svg +18 -0
- django_smartbase_admin/static/sb_admin/images/flags/de-at.png +0 -0
- django_smartbase_admin/static/sb_admin/images/flags/de-ch.png +0 -0
- django_smartbase_admin/static/sb_admin/images/logo_light.svg +21 -0
- django_smartbase_admin/static/sb_admin/js/coloris/coloris.min.js +6 -0
- django_smartbase_admin/static/sb_admin/js/fullcalendar.min.js +14804 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Bolt-one.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Calendar.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Caution.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Electric-drill.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Fire-extinguisher.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Gas.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Lightning-fill.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Moon.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Phone-telephone.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Printer.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Pull.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Sun-one.svg +3 -0
- django_smartbase_admin/static/sb_admin/sprites/sb_admin/Time.svg +3 -0
- django_smartbase_admin/static/sb_admin/src/css/_base.css +5 -1
- django_smartbase_admin/static/sb_admin/src/css/_colors.css +257 -82
- django_smartbase_admin/static/sb_admin/src/css/_components.css +61 -13
- django_smartbase_admin/static/sb_admin/src/css/_datepicker.css +8 -1
- django_smartbase_admin/static/sb_admin/src/css/_filer.css +60 -0
- django_smartbase_admin/static/sb_admin/src/css/_inlines.css +51 -10
- django_smartbase_admin/static/sb_admin/src/css/_tabulator.css +8 -2
- django_smartbase_admin/static/sb_admin/src/css/calendar.css +162 -0
- django_smartbase_admin/static/sb_admin/src/css/components/_button.css +41 -1
- django_smartbase_admin/static/sb_admin/src/css/components/_dropdown.css +26 -8
- django_smartbase_admin/static/sb_admin/src/css/components/_input.css +62 -20
- django_smartbase_admin/static/sb_admin/src/css/components/_modal.css +1 -1
- django_smartbase_admin/static/sb_admin/src/css/components/_query-builder.css +21 -2
- django_smartbase_admin/static/sb_admin/src/css/components/_toggle.css +12 -1
- django_smartbase_admin/static/sb_admin/src/css/components/_tooltip.css +8 -22
- django_smartbase_admin/static/sb_admin/src/css/style.css +17 -0
- django_smartbase_admin/static/sb_admin/src/css/tree_widget.css +411 -0
- django_smartbase_admin/static/sb_admin/src/js/autocomplete.js +63 -5
- django_smartbase_admin/static/sb_admin/src/js/calendar.js +56 -0
- django_smartbase_admin/static/sb_admin/src/js/chart.js +8 -22
- django_smartbase_admin/static/sb_admin/src/js/choices.js +18 -8
- django_smartbase_admin/static/sb_admin/src/js/datepicker.js +97 -336
- django_smartbase_admin/static/sb_admin/src/js/datepicker_plugins.js +357 -0
- django_smartbase_admin/static/sb_admin/src/js/main.js +304 -31
- django_smartbase_admin/static/sb_admin/src/js/multiselect.js +50 -41
- django_smartbase_admin/static/sb_admin/src/js/range.js +3 -2
- django_smartbase_admin/static/sb_admin/src/js/table.js +34 -5
- django_smartbase_admin/static/sb_admin/src/js/table_modules/advanced_filter_module.js +43 -20
- django_smartbase_admin/static/sb_admin/src/js/table_modules/data_edit_module.js +8 -10
- django_smartbase_admin/static/sb_admin/src/js/table_modules/filter_module.js +3 -3
- django_smartbase_admin/static/sb_admin/src/js/table_modules/header_tabs_module.js +11 -11
- django_smartbase_admin/static/sb_admin/src/js/table_modules/selection_module.js +28 -8
- django_smartbase_admin/static/sb_admin/src/js/table_modules/table_params_module.js +6 -0
- django_smartbase_admin/static/sb_admin/src/js/table_modules/views_module.js +6 -0
- django_smartbase_admin/static/sb_admin/src/js/tree_widget.js +406 -0
- django_smartbase_admin/static/sb_admin/src/js/utils.js +56 -21
- django_smartbase_admin/templates/sb_admin/actions/change_form.html +169 -114
- django_smartbase_admin/templates/sb_admin/actions/dashboard.html +2 -2
- django_smartbase_admin/templates/sb_admin/actions/list.html +79 -39
- django_smartbase_admin/templates/sb_admin/actions/partials/action_link.html +14 -0
- django_smartbase_admin/templates/sb_admin/actions/partials/tabulator_header_v2.html +2 -2
- django_smartbase_admin/templates/sb_admin/actions/tree_list.html +63 -0
- django_smartbase_admin/templates/sb_admin/authentification/login_base.html +5 -1
- django_smartbase_admin/templates/sb_admin/components/columns.html +1 -1
- django_smartbase_admin/templates/sb_admin/components/filters_v2.html +99 -85
- django_smartbase_admin/templates/sb_admin/dashboard/calendar_widget.html +69 -0
- django_smartbase_admin/templates/sb_admin/dashboard/chart_widget.html +21 -2
- django_smartbase_admin/templates/sb_admin/dashboard/list_widget.html +6 -0
- django_smartbase_admin/templates/sb_admin/dashboard/widget_base.html +1 -1
- django_smartbase_admin/templates/sb_admin/filter_widgets/advanced_filters/date_field.html +18 -8
- django_smartbase_admin/templates/sb_admin/filter_widgets/advanced_filters/multiple_choice_field.html +1 -1
- django_smartbase_admin/templates/sb_admin/filter_widgets/advanced_filters/tree_select_filter.html +2 -0
- django_smartbase_admin/templates/sb_admin/filter_widgets/date_field.html +18 -4
- django_smartbase_admin/templates/sb_admin/filter_widgets/multiple_choice_field.html +14 -0
- django_smartbase_admin/templates/sb_admin/filter_widgets/partials/clear.html +10 -5
- django_smartbase_admin/templates/sb_admin/filter_widgets/radio_choice_field.html +2 -2
- django_smartbase_admin/templates/sb_admin/filter_widgets/tree_select_filter.html +16 -0
- django_smartbase_admin/templates/sb_admin/includes/change_form_title.html +3 -1
- django_smartbase_admin/templates/sb_admin/includes/inline_fieldset.html +48 -39
- django_smartbase_admin/templates/sb_admin/includes/notifications.html +2 -1
- django_smartbase_admin/templates/sb_admin/includes/readonly_boolean_field.html +9 -0
- django_smartbase_admin/templates/sb_admin/includes/readonly_field.html +12 -0
- django_smartbase_admin/templates/sb_admin/includes/table_inline_delete_button.html +4 -5
- django_smartbase_admin/templates/sb_admin/inlines/stacked_inline.html +68 -40
- django_smartbase_admin/templates/sb_admin/inlines/table_inline.html +76 -34
- django_smartbase_admin/templates/sb_admin/integrations/filer/folder_list.html +18 -0
- django_smartbase_admin/templates/sb_admin/navigation.html +166 -158
- django_smartbase_admin/templates/sb_admin/partials/modal/modal_content.html +2 -6
- django_smartbase_admin/templates/sb_admin/sb_admin_base.html +49 -4
- django_smartbase_admin/templates/sb_admin/sb_admin_base_no_sidebar.html +27 -11
- django_smartbase_admin/templates/sb_admin/sb_admin_js_trans.html +3 -0
- django_smartbase_admin/templates/sb_admin/sprites/sb_admin.svg +1 -1
- django_smartbase_admin/templates/sb_admin/tailwind_whitelist.html +6 -3
- django_smartbase_admin/templates/sb_admin/widgets/array.html +0 -1
- django_smartbase_admin/templates/sb_admin/widgets/attributes.html +68 -0
- django_smartbase_admin/templates/sb_admin/widgets/autocomplete.html +13 -2
- django_smartbase_admin/templates/sb_admin/widgets/{checkbox_select.html → checkbox_dropdown.html} +2 -2
- django_smartbase_admin/templates/sb_admin/widgets/clearable_file_input.html +2 -2
- django_smartbase_admin/templates/sb_admin/widgets/color_field.html +30 -0
- django_smartbase_admin/templates/sb_admin/widgets/date.html +8 -1
- django_smartbase_admin/templates/sb_admin/widgets/filer_file.html +84 -0
- django_smartbase_admin/templates/sb_admin/widgets/includes/related_item_buttons.html +38 -0
- django_smartbase_admin/templates/sb_admin/widgets/multiwidget.html +1 -1
- django_smartbase_admin/templates/sb_admin/widgets/radio.html +3 -2
- django_smartbase_admin/templates/sb_admin/widgets/radio_dropdown.html +30 -0
- django_smartbase_admin/templates/sb_admin/widgets/read_only_password_hash.html +3 -0
- django_smartbase_admin/templates/sb_admin/widgets/time.html +8 -1
- django_smartbase_admin/templates/sb_admin/widgets/toggle.html +1 -1
- django_smartbase_admin/templates/sb_admin/widgets/tree_base.html +59 -0
- django_smartbase_admin/templates/sb_admin/widgets/tree_select.html +24 -0
- django_smartbase_admin/templates/sb_admin/widgets/tree_select_inline.html +12 -0
- django_smartbase_admin/templatetags/sb_admin_tags.py +85 -4
- django_smartbase_admin/utils.py +22 -3
- django_smartbase_admin/views/dashboard_view.py +6 -0
- django_smartbase_admin/views/global_filter_view.py +8 -2
- django_smartbase_admin/views/translations_view.py +12 -5
- django_smartbase_admin/views/user_config_view.py +52 -0
- django_smartbase_admin-1.0.38.dist-info/METADATA +166 -0
- {django_smartbase_admin-0.2.54.dist-info → django_smartbase_admin-1.0.38.dist-info}/RECORD +177 -115
- {django_smartbase_admin-0.2.54.dist-info → django_smartbase_admin-1.0.38.dist-info}/WHEEL +1 -1
- django_smartbase_admin/templates/sb_admin/integrations/sorting/change_list.html +0 -401
- django_smartbase_admin-0.2.54.dist-info/METADATA +0 -25
- {django_smartbase_admin-0.2.54.dist-info → django_smartbase_admin-1.0.38.dist-info}/LICENSE.md +0 -0
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: \n"
|
|
9
9
|
"Report-Msgid-Bugs-To: \n"
|
|
10
|
-
"POT-Creation-Date:
|
|
10
|
+
"POT-Creation-Date: 2025-09-11 16:32+0200\n"
|
|
11
11
|
"PO-Revision-Date: 2023-11-15 15:21+0100\n"
|
|
12
12
|
"Last-Translator: \n"
|
|
13
13
|
"Language-Team: \n"
|
|
@@ -18,9 +18,82 @@ msgstr ""
|
|
|
18
18
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
|
19
19
|
"X-Generator: Poedit 3.4.1\n"
|
|
20
20
|
|
|
21
|
+
msgid "Equal"
|
|
22
|
+
msgstr ""
|
|
23
|
+
|
|
24
|
+
msgid "Not equal"
|
|
25
|
+
msgstr ""
|
|
26
|
+
|
|
27
|
+
msgid "Less"
|
|
28
|
+
msgstr ""
|
|
29
|
+
|
|
30
|
+
msgid "Less or equal"
|
|
31
|
+
msgstr ""
|
|
32
|
+
|
|
33
|
+
msgid "Greater"
|
|
34
|
+
msgstr ""
|
|
35
|
+
|
|
36
|
+
msgid "Greater or equal"
|
|
37
|
+
msgstr ""
|
|
38
|
+
|
|
39
|
+
msgid "Between"
|
|
40
|
+
msgstr ""
|
|
41
|
+
|
|
42
|
+
msgid "Not between"
|
|
43
|
+
msgstr ""
|
|
44
|
+
|
|
45
|
+
msgid "In"
|
|
46
|
+
msgstr ""
|
|
47
|
+
|
|
48
|
+
msgid "Not in"
|
|
49
|
+
msgstr ""
|
|
50
|
+
|
|
51
|
+
msgid "Begins with"
|
|
52
|
+
msgstr ""
|
|
53
|
+
|
|
54
|
+
msgid "Not begins with"
|
|
55
|
+
msgstr ""
|
|
56
|
+
|
|
57
|
+
msgid "Contains"
|
|
58
|
+
msgstr ""
|
|
59
|
+
|
|
60
|
+
msgid "Not contains"
|
|
61
|
+
msgstr ""
|
|
62
|
+
|
|
63
|
+
msgid "End with"
|
|
64
|
+
msgstr ""
|
|
65
|
+
|
|
66
|
+
msgid "Not ends with"
|
|
67
|
+
msgstr ""
|
|
68
|
+
|
|
69
|
+
msgid "Is empty"
|
|
70
|
+
msgstr ""
|
|
71
|
+
|
|
72
|
+
msgid "Is null"
|
|
73
|
+
msgstr ""
|
|
74
|
+
|
|
75
|
+
msgid "Is not null"
|
|
76
|
+
msgstr ""
|
|
77
|
+
|
|
78
|
+
msgid "Before"
|
|
79
|
+
msgstr ""
|
|
80
|
+
|
|
81
|
+
msgid "After"
|
|
82
|
+
msgstr ""
|
|
83
|
+
|
|
84
|
+
msgid "In the last"
|
|
85
|
+
msgstr ""
|
|
86
|
+
|
|
87
|
+
msgid "In the next"
|
|
88
|
+
msgstr ""
|
|
89
|
+
|
|
21
90
|
msgid "Hold down “Control”, or “Command” on a Mac, to select more than one."
|
|
22
91
|
msgstr "Pre vybratie viacerých súborov podržte “Control”, alebo “Command” na Mac-u."
|
|
23
92
|
|
|
93
|
+
#, python-format
|
|
94
|
+
msgid "Change history: %s"
|
|
95
|
+
msgstr "História zmien: %s"
|
|
96
|
+
|
|
24
97
|
msgid "Clear"
|
|
25
98
|
msgstr "Vymazať"
|
|
26
99
|
|
|
@@ -30,6 +103,15 @@ msgstr "Aktuálne"
|
|
|
30
103
|
msgid "Change file"
|
|
31
104
|
msgstr "Zmeniť súbor"
|
|
32
105
|
|
|
106
|
+
msgid "Cannot set parent to itself"
|
|
107
|
+
msgstr ""
|
|
108
|
+
|
|
109
|
+
msgid "Cannot set parent to it's own child"
|
|
110
|
+
msgstr ""
|
|
111
|
+
|
|
112
|
+
msgid "Search..."
|
|
113
|
+
msgstr "Vyhľadať..."
|
|
114
|
+
|
|
33
115
|
msgid "Exit Reorder"
|
|
34
116
|
msgstr "Ukončiť preusporiadanie"
|
|
35
117
|
|
|
@@ -46,6 +128,9 @@ msgstr "Exportovať vybrané"
|
|
|
46
128
|
msgid "Delete Selected"
|
|
47
129
|
msgstr "Odstrániť vybrané"
|
|
48
130
|
|
|
131
|
+
msgid "No selection made."
|
|
132
|
+
msgstr "Výber je prázdny"
|
|
133
|
+
|
|
49
134
|
msgid "All"
|
|
50
135
|
msgstr "Všetky"
|
|
51
136
|
|
|
@@ -105,6 +190,34 @@ msgstr "Posledných 90 dní"
|
|
|
105
190
|
msgid "Last 12 months"
|
|
106
191
|
msgstr "Posledných 12 mesiacov"
|
|
107
192
|
|
|
193
|
+
msgctxt "Tree widget"
|
|
194
|
+
msgid "Loading..."
|
|
195
|
+
msgstr "Načítavanie..."
|
|
196
|
+
|
|
197
|
+
msgctxt "Tree widget"
|
|
198
|
+
msgid "Load error!"
|
|
199
|
+
msgstr "Chyba pri načítavaní!"
|
|
200
|
+
|
|
201
|
+
msgctxt "Tree widget"
|
|
202
|
+
msgid "More..."
|
|
203
|
+
msgstr "Viac..."
|
|
204
|
+
|
|
205
|
+
msgctxt "Tree widget"
|
|
206
|
+
msgid "No data."
|
|
207
|
+
msgstr "Žiadne dáta."
|
|
208
|
+
|
|
209
|
+
msgid "System"
|
|
210
|
+
msgstr "Systém"
|
|
211
|
+
|
|
212
|
+
msgid "Dark"
|
|
213
|
+
msgstr "Tmavá"
|
|
214
|
+
|
|
215
|
+
msgid "Light"
|
|
216
|
+
msgstr "Svetlá"
|
|
217
|
+
|
|
218
|
+
msgid "Theme"
|
|
219
|
+
msgstr "Téma"
|
|
220
|
+
|
|
108
221
|
msgid "Translations"
|
|
109
222
|
msgstr "Preklady"
|
|
110
223
|
|
|
@@ -120,6 +233,22 @@ msgstr[0] "Opravte chybu nižšie."
|
|
|
120
233
|
msgstr[1] "Opravte chyby nižšie."
|
|
121
234
|
msgstr[2] "Opravte chyby nižšie."
|
|
122
235
|
|
|
236
|
+
msgid "Save"
|
|
237
|
+
msgstr "Uložiť"
|
|
238
|
+
|
|
239
|
+
msgid "Close"
|
|
240
|
+
msgstr "Zatvoriť"
|
|
241
|
+
|
|
242
|
+
msgid "Prev"
|
|
243
|
+
msgstr "Pred."
|
|
244
|
+
|
|
245
|
+
#, python-format
|
|
246
|
+
msgid "<strong>%(current_index)s</strong> / %(all_objects_count)s"
|
|
247
|
+
msgstr ""
|
|
248
|
+
|
|
249
|
+
msgid "Next"
|
|
250
|
+
msgstr "Ďal."
|
|
251
|
+
|
|
123
252
|
msgid "Back"
|
|
124
253
|
msgstr "Naspäť"
|
|
125
254
|
|
|
@@ -158,12 +287,6 @@ msgstr "Nie, ísť späť"
|
|
|
158
287
|
msgid "Yes, I’m sure"
|
|
159
288
|
msgstr "Áno, som si istý"
|
|
160
289
|
|
|
161
|
-
msgid "Home"
|
|
162
|
-
msgstr "Domov"
|
|
163
|
-
|
|
164
|
-
msgid "Delete multiple objects"
|
|
165
|
-
msgstr "Zmazať viacero objektov"
|
|
166
|
-
|
|
167
290
|
#, python-format
|
|
168
291
|
msgid "Deleting the selected %(objects_name)s would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
|
|
169
292
|
msgstr "Odstránenie vybraných %(objects_name)s vyžaduje odstránenie súvisiacich objektov ale váš účet nemá potrebné povolenia na odstránenie týchto objektov:"
|
|
@@ -179,18 +302,6 @@ msgstr "Ste si istý že chcete odstrániť vybrané %(objects_name)s? Všetky n
|
|
|
179
302
|
msgid "Add"
|
|
180
303
|
msgstr "Pridať"
|
|
181
304
|
|
|
182
|
-
msgid "Save view"
|
|
183
|
-
msgstr "Uložiť zobrazenie"
|
|
184
|
-
|
|
185
|
-
msgid "Search and filter"
|
|
186
|
-
msgstr "Hľadať a filtrovať"
|
|
187
|
-
|
|
188
|
-
msgid "Select all"
|
|
189
|
-
msgstr "Vybrať všetky"
|
|
190
|
-
|
|
191
|
-
msgid "Select none"
|
|
192
|
-
msgstr "Odstrániť výber"
|
|
193
|
-
|
|
194
305
|
msgid "For page"
|
|
195
306
|
msgstr "Veľkost strany"
|
|
196
307
|
|
|
@@ -206,18 +317,42 @@ msgstr "Akcia"
|
|
|
206
317
|
msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
|
|
207
318
|
msgstr "Tento objekt nemá históriu zmien. Pravdepodobne nebolo pridané cez túto admin stránku."
|
|
208
319
|
|
|
320
|
+
msgid "Select all"
|
|
321
|
+
msgstr "Vybrať všetky"
|
|
322
|
+
|
|
323
|
+
msgid "Select none"
|
|
324
|
+
msgstr "Odstrániť výber"
|
|
325
|
+
|
|
326
|
+
msgid "Save view"
|
|
327
|
+
msgstr "Uložiť zobrazenie"
|
|
328
|
+
|
|
329
|
+
msgid "Search and filter"
|
|
330
|
+
msgstr "Hľadať a filtrovať"
|
|
331
|
+
|
|
332
|
+
msgid "Quick Search"
|
|
333
|
+
msgstr "Rýchle vyhľadávanie"
|
|
334
|
+
|
|
335
|
+
msgid "Saved Views"
|
|
336
|
+
msgstr "Uložené zobrazenia"
|
|
337
|
+
|
|
338
|
+
msgid "Advanced Filters"
|
|
339
|
+
msgstr "Rozšírené filtrovanie"
|
|
340
|
+
|
|
341
|
+
msgid "Search"
|
|
342
|
+
msgstr "Vyhľadať"
|
|
343
|
+
|
|
209
344
|
msgid "Copy"
|
|
210
345
|
msgstr "Kopírovať"
|
|
211
346
|
|
|
212
|
-
msgid "Save"
|
|
213
|
-
msgstr "Uložiť"
|
|
214
|
-
|
|
215
347
|
msgid "Show translations"
|
|
216
348
|
msgstr "Zobraziť preklady"
|
|
217
349
|
|
|
350
|
+
msgid "Save Order"
|
|
351
|
+
msgstr "Uložiť zoradenie"
|
|
352
|
+
|
|
218
353
|
#, python-format
|
|
219
354
|
msgid "You are authenticated as %(username)s, but are not authorized to access this page. Would you like to login to a different account?"
|
|
220
|
-
msgstr ""
|
|
355
|
+
msgstr "Ste prihlásený ako %(username)s, ale k tejto stránke nemáte prístup. Chcete sa prihlásiť pod iným účtom?"
|
|
221
356
|
|
|
222
357
|
msgid "Welcome back"
|
|
223
358
|
msgstr "Vitajte späť"
|
|
@@ -308,6 +443,9 @@ msgstr "Vybrať všetky"
|
|
|
308
443
|
msgid "Remove"
|
|
309
444
|
msgstr "Odstrániť"
|
|
310
445
|
|
|
446
|
+
msgid "View Results"
|
|
447
|
+
msgstr "Zobraziť výsledky"
|
|
448
|
+
|
|
311
449
|
msgid ""
|
|
312
450
|
"\n"
|
|
313
451
|
" <button class=\"btn btn-primary-light btn-tiny\">Add file</button>\n"
|
|
@@ -322,8 +460,11 @@ msgstr ""
|
|
|
322
460
|
msgid "JPG, PNG, GIF or WEBP max 10MB"
|
|
323
461
|
msgstr "JPG, PNG, GIF alebo WEBP max 10MB"
|
|
324
462
|
|
|
325
|
-
msgid "
|
|
326
|
-
msgstr "
|
|
463
|
+
msgid "Remove View"
|
|
464
|
+
msgstr "Odstrániť zobratenie"
|
|
465
|
+
|
|
466
|
+
msgid "Do you want to remove table view?"
|
|
467
|
+
msgstr "Naozaj chcete odstrániť toto zobrazenie?"
|
|
327
468
|
|
|
328
469
|
msgid "Save view as"
|
|
329
470
|
msgstr "Uložiť zobrazenie ako"
|
|
@@ -340,6 +481,9 @@ msgstr "alebo uložiť ako"
|
|
|
340
481
|
msgid "Cancel"
|
|
341
482
|
msgstr "Zrušiť"
|
|
342
483
|
|
|
484
|
+
msgid "Calendar"
|
|
485
|
+
msgstr "Kalendár"
|
|
486
|
+
|
|
343
487
|
msgid "Yes"
|
|
344
488
|
msgstr "Áno"
|
|
345
489
|
|
|
@@ -374,18 +518,27 @@ msgstr ""
|
|
|
374
518
|
msgid "Awards"
|
|
375
519
|
msgstr "Ocenenia"
|
|
376
520
|
|
|
521
|
+
msgid "Are you sure?"
|
|
522
|
+
msgstr "Ste si istý?"
|
|
523
|
+
|
|
524
|
+
msgid "Confirm"
|
|
525
|
+
msgstr "Potvrdiť"
|
|
526
|
+
|
|
377
527
|
msgid "Loading..."
|
|
378
528
|
msgstr "Načítavanie..."
|
|
379
529
|
|
|
530
|
+
#, python-format
|
|
531
|
+
msgid "Add another %(verbose_name)s"
|
|
532
|
+
msgstr "Pridať ďalší %(verbose_name)s"
|
|
533
|
+
|
|
380
534
|
msgid "Change"
|
|
381
535
|
msgstr "Zmeniť"
|
|
382
536
|
|
|
383
537
|
msgid "View"
|
|
384
538
|
msgstr "Zobraziť"
|
|
385
539
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
msgstr "Pridať ďalší %(verbose_name)s"
|
|
540
|
+
msgid "Delete"
|
|
541
|
+
msgstr "Zmazať"
|
|
389
542
|
|
|
390
543
|
msgid "results"
|
|
391
544
|
msgstr "výsledky"
|
|
@@ -399,9 +552,6 @@ msgstr "Strom stránok"
|
|
|
399
552
|
msgid "Reset filter"
|
|
400
553
|
msgstr "Vymazať filtre"
|
|
401
554
|
|
|
402
|
-
msgid "Search"
|
|
403
|
-
msgstr "Vyhľadať"
|
|
404
|
-
|
|
405
555
|
msgid "Sites"
|
|
406
556
|
msgstr "Stránky"
|
|
407
557
|
|
|
@@ -481,6 +631,9 @@ msgstr "Duplikáty"
|
|
|
481
631
|
msgid "Go back to admin homepage"
|
|
482
632
|
msgstr "Naspäť na adminovú domovskú stránku"
|
|
483
633
|
|
|
634
|
+
msgid "Home"
|
|
635
|
+
msgstr "Domov"
|
|
636
|
+
|
|
484
637
|
msgid "Go back to Filer app"
|
|
485
638
|
msgstr "Naspäť do koreňového priečinka"
|
|
486
639
|
|
|
@@ -515,9 +668,6 @@ msgstr "Zobraziť menu"
|
|
|
515
668
|
msgid "Change current folder details"
|
|
516
669
|
msgstr "Zmeniť detaily priečinka"
|
|
517
670
|
|
|
518
|
-
msgid "Close"
|
|
519
|
-
msgstr "Zatvoriť"
|
|
520
|
-
|
|
521
671
|
msgid "Limit"
|
|
522
672
|
msgstr "Limit"
|
|
523
673
|
|
|
@@ -569,8 +719,8 @@ msgstr "Poradie sa upravuje, prosím čakajte"
|
|
|
569
719
|
msgid "Logout"
|
|
570
720
|
msgstr "Odhlásiť sa"
|
|
571
721
|
|
|
572
|
-
msgid "
|
|
573
|
-
msgstr "
|
|
722
|
+
msgid "Continue"
|
|
723
|
+
msgstr "Pokračovať"
|
|
574
724
|
|
|
575
725
|
msgid "Move to last"
|
|
576
726
|
msgstr "Presunúť na posledné miesto"
|
|
@@ -584,6 +734,12 @@ msgstr "Posunúť nižšie"
|
|
|
584
734
|
msgid "Reorder"
|
|
585
735
|
msgstr "Preusporiadať"
|
|
586
736
|
|
|
737
|
+
msgid "Expand"
|
|
738
|
+
msgstr "Rozbaliť"
|
|
739
|
+
|
|
740
|
+
msgid "Collapse"
|
|
741
|
+
msgstr "Zbaliť"
|
|
742
|
+
|
|
587
743
|
#, python-brace-format
|
|
588
744
|
msgid "<strong>${from} - ${to}</strong> of <strong>${total}</strong><span class=\"max-xs:hidden\"> items</span>"
|
|
589
745
|
msgstr "<strong>${from} - ${to}</strong> z <strong>${total}</strong><span class=\"max-xs:hidden\"> položiek</span>"
|
|
@@ -591,6 +747,10 @@ msgstr "<strong>${from} - ${to}</strong> z <strong>${total}</strong><span class=
|
|
|
591
747
|
msgid "<strong>0</strong> items"
|
|
592
748
|
msgstr "<strong>0</strong> položiek"
|
|
593
749
|
|
|
750
|
+
#, python-brace-format
|
|
751
|
+
msgid "${value} selected"
|
|
752
|
+
msgstr "${value} vybrané"
|
|
753
|
+
|
|
594
754
|
msgid "Basic Settings"
|
|
595
755
|
msgstr "Základné nastavenia"
|
|
596
756
|
|
|
@@ -615,6 +775,77 @@ msgstr "alebo pridajte potiahnutím"
|
|
|
615
775
|
msgid "Edit"
|
|
616
776
|
msgstr "Upraviť"
|
|
617
777
|
|
|
778
|
+
msgid "Open color picker"
|
|
779
|
+
msgstr "Otvoriť výber farieb"
|
|
780
|
+
|
|
781
|
+
msgid "Close color picker"
|
|
782
|
+
msgstr "Zatvoriť výber farieb"
|
|
783
|
+
|
|
784
|
+
msgid "Clear the selected color"
|
|
785
|
+
msgstr "Vymazať výber farby"
|
|
786
|
+
|
|
787
|
+
#, python-brace-format
|
|
788
|
+
msgid "Saturation: {s}. Brightness: {v}."
|
|
789
|
+
msgstr ""
|
|
790
|
+
|
|
791
|
+
msgid "Hue slider"
|
|
792
|
+
msgstr ""
|
|
793
|
+
|
|
794
|
+
msgid "Opacity slider"
|
|
795
|
+
msgstr ""
|
|
796
|
+
|
|
797
|
+
msgid "Color value field"
|
|
798
|
+
msgstr ""
|
|
799
|
+
|
|
800
|
+
msgid "Color format"
|
|
801
|
+
msgstr ""
|
|
802
|
+
|
|
803
|
+
msgid "Color swatch"
|
|
804
|
+
msgstr ""
|
|
805
|
+
|
|
806
|
+
msgid "Saturation and brightness selector. Use up, down, left and right arrow keys to select."
|
|
807
|
+
msgstr ""
|
|
808
|
+
|
|
809
|
+
msgid "drop your file here or"
|
|
810
|
+
msgstr ""
|
|
811
|
+
|
|
812
|
+
msgid "No file selected"
|
|
813
|
+
msgstr "Nebol vybraný žiadny súbor"
|
|
814
|
+
|
|
815
|
+
msgid "File is missing"
|
|
816
|
+
msgstr "Súbor chýba"
|
|
817
|
+
|
|
818
|
+
msgid "Lookup"
|
|
819
|
+
msgstr "Vyhľadať"
|
|
820
|
+
|
|
821
|
+
msgid "Choose File"
|
|
822
|
+
msgstr "Zvoľte súbor"
|
|
823
|
+
|
|
824
|
+
#, python-brace-format
|
|
825
|
+
msgid "Added {name} “{object}”."
|
|
826
|
+
msgstr "Pridané {name} “{object}”."
|
|
827
|
+
|
|
828
|
+
msgid "Added."
|
|
829
|
+
msgstr "Pridané."
|
|
830
|
+
|
|
831
|
+
msgid "and"
|
|
832
|
+
msgstr "a"
|
|
833
|
+
|
|
834
|
+
#, python-brace-format
|
|
835
|
+
msgid "Changed {fields} for {name} “{object}”."
|
|
836
|
+
msgstr "Zmenené {fields} pre {name} “{object}”"
|
|
837
|
+
|
|
838
|
+
#, python-brace-format
|
|
839
|
+
msgid "Changed {fields}."
|
|
840
|
+
msgstr "Zmenené {fields}."
|
|
841
|
+
|
|
842
|
+
#, python-brace-format
|
|
843
|
+
msgid "Deleted {name} “{object}”."
|
|
844
|
+
msgstr "Odstránené {name} “{object}”."
|
|
845
|
+
|
|
846
|
+
msgid "No fields changed."
|
|
847
|
+
msgstr "Žiadne zmeny."
|
|
848
|
+
|
|
618
849
|
msgid "Not Translated"
|
|
619
850
|
msgstr "Nepreložené"
|
|
620
851
|
|
|
@@ -628,4 +859,4 @@ msgid "Status"
|
|
|
628
859
|
msgstr "Stav"
|
|
629
860
|
|
|
630
861
|
msgid " of "
|
|
631
|
-
msgstr ""
|
|
862
|
+
msgstr " z "
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Generated by Django 5.0.3 on 2025-07-29 08:28
|
|
2
|
+
|
|
3
|
+
import django.db.models.deletion
|
|
4
|
+
from django.conf import settings
|
|
5
|
+
from django.db import migrations, models
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
('django_smartbase_admin', '0004_alter_sbadminlistviewconfiguration_action_and_more'),
|
|
12
|
+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
operations = [
|
|
16
|
+
migrations.CreateModel(
|
|
17
|
+
name='SBAdminUserConfiguration',
|
|
18
|
+
fields=[
|
|
19
|
+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
20
|
+
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
21
|
+
('updated_at', models.DateTimeField(auto_now=True)),
|
|
22
|
+
('color_scheme', models.CharField(choices=[('auto', '<span class="flex gap-8"><svg class="w-20 h-20"><use href="#Translation"></use></svg><span>System</span></span>'), ('dark', '<span class="flex gap-8"><svg class="w-20 h-20"><use href="#Moon"></use></svg><span>Dark</span></span>'), ('light', '<span class="flex gap-8"><svg class="w-20 h-20"><use href="#Sun-one"></use></svg><span>Light</span></span>')], default='auto', max_length=255, verbose_name='Theme')),
|
|
23
|
+
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
24
|
+
],
|
|
25
|
+
),
|
|
26
|
+
]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Generated by Django 5.0.14 on 2025-08-04 06:22
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('django_smartbase_admin', '0005_sbadminuserconfiguration'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AlterField(
|
|
14
|
+
model_name='sbadminuserconfiguration',
|
|
15
|
+
name='color_scheme',
|
|
16
|
+
field=models.CharField(choices=[('auto', 'System'), ('dark', 'Dark'), ('light', 'Light')], default='auto', max_length=255, verbose_name='Theme'),
|
|
17
|
+
),
|
|
18
|
+
]
|
django_smartbase_admin/models.py
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
from django.conf import settings
|
|
2
2
|
from django.db import models
|
|
3
|
+
from django.utils.translation import gettext_lazy as _
|
|
3
4
|
|
|
4
5
|
from django_smartbase_admin.querysets import SBAdminListViewConfigurationQueryset
|
|
5
6
|
|
|
6
7
|
|
|
8
|
+
class ColorScheme(models.TextChoices):
|
|
9
|
+
AUTO = "auto", _("System")
|
|
10
|
+
DARK = "dark", _("Dark")
|
|
11
|
+
LIGHT = "light", _("Light")
|
|
12
|
+
|
|
13
|
+
|
|
7
14
|
class SBAdminListViewConfiguration(models.Model):
|
|
8
15
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
9
16
|
updated_at = models.DateTimeField(auto_now=True)
|
|
@@ -18,3 +25,18 @@ class SBAdminListViewConfiguration(models.Model):
|
|
|
18
25
|
url_params = models.TextField()
|
|
19
26
|
|
|
20
27
|
objects = SBAdminListViewConfigurationQueryset.as_manager()
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class SBAdminUserConfiguration(models.Model):
|
|
31
|
+
created_at = models.DateTimeField(auto_now_add=True)
|
|
32
|
+
updated_at = models.DateTimeField(auto_now=True)
|
|
33
|
+
user = models.ForeignKey(
|
|
34
|
+
to=settings.AUTH_USER_MODEL,
|
|
35
|
+
on_delete=models.CASCADE,
|
|
36
|
+
)
|
|
37
|
+
color_scheme = models.CharField(
|
|
38
|
+
max_length=255,
|
|
39
|
+
choices=ColorScheme.choices,
|
|
40
|
+
default=ColorScheme.AUTO,
|
|
41
|
+
verbose_name=_("Theme"),
|
|
42
|
+
)
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import django.contrib.admin.helpers
|
|
2
|
+
from django.contrib.admin.utils import lookup_field, display_for_field
|
|
3
|
+
from django.core.exceptions import ObjectDoesNotExist
|
|
4
|
+
from django.db import models
|
|
5
|
+
from django.db.models import ManyToManyRel, ForeignObjectRel, OneToOneField
|
|
6
|
+
from django.template.defaultfilters import linebreaksbr
|
|
7
|
+
from django.template.loader import render_to_string
|
|
8
|
+
from django.utils.html import conditional_escape
|
|
9
|
+
from django.utils.safestring import mark_safe
|
|
10
|
+
|
|
11
|
+
from django_smartbase_admin.admin.site import sb_admin_site
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SBAdminReadonlyField(django.contrib.admin.helpers.AdminReadonlyField):
|
|
15
|
+
readonly_template = "sb_admin/includes/readonly_field.html"
|
|
16
|
+
readonly_boolean_template = "sb_admin/includes/readonly_boolean_field.html"
|
|
17
|
+
|
|
18
|
+
def _boolean_field_content(self, value):
|
|
19
|
+
return mark_safe(
|
|
20
|
+
render_to_string(
|
|
21
|
+
template_name=self.readonly_boolean_template,
|
|
22
|
+
context={
|
|
23
|
+
"field_label": self.field.get("label"),
|
|
24
|
+
"field_name": self.field.get("name"),
|
|
25
|
+
"value": value,
|
|
26
|
+
},
|
|
27
|
+
),
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
def contents(self, request=None):
|
|
31
|
+
if self.model_admin.admin_site.name != sb_admin_site.name:
|
|
32
|
+
return super().contents()
|
|
33
|
+
|
|
34
|
+
field, obj, model_admin = (
|
|
35
|
+
self.field["field"],
|
|
36
|
+
self.form.instance,
|
|
37
|
+
self.model_admin,
|
|
38
|
+
)
|
|
39
|
+
try:
|
|
40
|
+
f, attr, value = lookup_field(field, obj, model_admin)
|
|
41
|
+
except (AttributeError, ValueError, ObjectDoesNotExist):
|
|
42
|
+
result_repr = self.empty_value_display
|
|
43
|
+
else:
|
|
44
|
+
if field in self.form.fields:
|
|
45
|
+
widget = self.form[field].field.widget
|
|
46
|
+
# This isn't elegant but suffices for contrib.auth's
|
|
47
|
+
# ReadOnlyPasswordHashWidget.
|
|
48
|
+
if getattr(widget, "read_only", False):
|
|
49
|
+
return widget.render(field, value)
|
|
50
|
+
if f is None:
|
|
51
|
+
if getattr(attr, "boolean", False):
|
|
52
|
+
return self._boolean_field_content(value)
|
|
53
|
+
else:
|
|
54
|
+
if hasattr(value, "__html__"):
|
|
55
|
+
result_repr = value
|
|
56
|
+
else:
|
|
57
|
+
result_repr = linebreaksbr(value)
|
|
58
|
+
else:
|
|
59
|
+
base_field = self.form.fields.get(
|
|
60
|
+
field
|
|
61
|
+
) or model_admin.all_base_fields_form.base_fields.get(field)
|
|
62
|
+
if isinstance(f.remote_field, ManyToManyRel) and value is not None:
|
|
63
|
+
# get label from widget if has base_field
|
|
64
|
+
if base_field:
|
|
65
|
+
result_repr = base_field.widget.get_label(
|
|
66
|
+
request, list(value.all())
|
|
67
|
+
)
|
|
68
|
+
else:
|
|
69
|
+
result_repr = ", ".join(map(str, value.all()))
|
|
70
|
+
elif (
|
|
71
|
+
isinstance(f.remote_field, (ForeignObjectRel, OneToOneField))
|
|
72
|
+
and value is not None
|
|
73
|
+
):
|
|
74
|
+
# get label from widget if has base_field
|
|
75
|
+
if base_field:
|
|
76
|
+
result_repr = base_field.widget.get_label(
|
|
77
|
+
request, getattr(obj, field)
|
|
78
|
+
)
|
|
79
|
+
else:
|
|
80
|
+
result_repr = self.get_admin_url(f.remote_field, value)
|
|
81
|
+
else:
|
|
82
|
+
if isinstance(f, models.BooleanField):
|
|
83
|
+
return self._boolean_field_content(value)
|
|
84
|
+
result_repr = display_for_field(value, f, self.empty_value_display)
|
|
85
|
+
result_repr = linebreaksbr(result_repr)
|
|
86
|
+
return render_to_string(
|
|
87
|
+
template_name=self.readonly_template,
|
|
88
|
+
context={
|
|
89
|
+
"readonly_content": conditional_escape(result_repr),
|
|
90
|
+
"field_label": self.field.get("label"),
|
|
91
|
+
"field_label_suffix": self.form.label_suffix,
|
|
92
|
+
},
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
django.contrib.admin.helpers.AdminReadonlyField = SBAdminReadonlyField
|
|
@@ -14,7 +14,7 @@ def monkeypatch_get_foreign_key(fnc):
|
|
|
14
14
|
result = models.ForeignKey(
|
|
15
15
|
model.original_model, on_delete=models.DO_NOTHING
|
|
16
16
|
)
|
|
17
|
-
result.
|
|
17
|
+
result.set_attributes_from_name(SBAdminFakeInlineMixin.fk_name)
|
|
18
18
|
|
|
19
19
|
return result
|
|
20
20
|
|
|
@@ -20,3 +20,33 @@ class SBAdminConfigurationService(object):
|
|
|
20
20
|
return slugify(view_id)
|
|
21
21
|
else:
|
|
22
22
|
return view_id
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class SBAdminUserConfigurationService(object):
|
|
26
|
+
@classmethod
|
|
27
|
+
def get_user_config(cls, request):
|
|
28
|
+
"""Delegate to the configuration class's get_user_config method."""
|
|
29
|
+
configuration_class = import_string(settings.SB_ADMIN_CONFIGURATION)
|
|
30
|
+
return configuration_class.get_user_config(request)
|
|
31
|
+
|
|
32
|
+
@classmethod
|
|
33
|
+
def get_saved_views(cls, request, view_id):
|
|
34
|
+
"""Delegate to the configuration class's get_saved_views method."""
|
|
35
|
+
configuration_class = import_string(settings.SB_ADMIN_CONFIGURATION)
|
|
36
|
+
return configuration_class.get_saved_views(request, view_id)
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def create_or_update_saved_view(
|
|
40
|
+
cls, request, view_id, config_id, config_name, url_params
|
|
41
|
+
):
|
|
42
|
+
"""Delegate to the configuration class's create_or_update_saved_view method."""
|
|
43
|
+
configuration_class = import_string(settings.SB_ADMIN_CONFIGURATION)
|
|
44
|
+
return configuration_class.create_or_update_saved_view(
|
|
45
|
+
request, view_id, config_id, config_name, url_params
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def delete_saved_view(cls, request, view_id, config_id):
|
|
50
|
+
"""Delegate to the configuration class's delete_saved_view method."""
|
|
51
|
+
configuration_class = import_string(settings.SB_ADMIN_CONFIGURATION)
|
|
52
|
+
return configuration_class.delete_saved_view(request, view_id, config_id)
|