django-unfold 0.40.0__py3-none-any.whl → 0.42.0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- {django_unfold-0.40.0.dist-info → django_unfold-0.42.0.dist-info}/METADATA +6 -1
- {django_unfold-0.40.0.dist-info → django_unfold-0.42.0.dist-info}/RECORD +62 -57
- {django_unfold-0.40.0.dist-info → django_unfold-0.42.0.dist-info}/WHEEL +1 -1
- unfold/admin.py +11 -1
- unfold/contrib/filters/admin.py +23 -33
- unfold/contrib/filters/forms.py +2 -2
- unfold/contrib/forms/templates/unfold/forms/array.html +2 -2
- unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html +2 -2
- unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html +2 -2
- unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html +2 -2
- unfold/contrib/import_export/templates/admin/import_export/export.html +2 -2
- unfold/contrib/import_export/templates/admin/import_export/import.html +2 -2
- unfold/contrib/simple_history/templates/simple_history/object_history_form.html +2 -2
- unfold/contrib/simple_history/templates/simple_history/submit_line.html +1 -1
- unfold/settings.py +1 -0
- unfold/sites.py +25 -5
- unfold/static/admin/js/inlines.js +439 -0
- unfold/static/unfold/css/styles.css +1 -1
- unfold/static/unfold/fonts/material-symbols/Material-Symbols-Outlined.woff2 +0 -0
- unfold/static/unfold/fonts/material-symbols/styles.css +1 -2
- unfold/static/unfold/js/alpine.sort.js +1 -0
- unfold/static/unfold/js/app.js +42 -10
- unfold/static/unfold/js/select2.init.js +1 -1
- unfold/styles.css +19 -2
- unfold/templates/admin/app_index.html +1 -1
- unfold/templates/admin/auth/user/change_password.html +1 -1
- unfold/templates/admin/base.html +4 -4
- unfold/templates/admin/change_form.html +2 -2
- unfold/templates/admin/change_list.html +47 -45
- unfold/templates/admin/date_hierarchy.html +5 -5
- unfold/templates/admin/delete_confirmation.html +4 -9
- unfold/templates/admin/delete_selected_confirmation.html +4 -8
- unfold/templates/admin/edit_inline/stacked.html +23 -8
- unfold/templates/admin/edit_inline/tabular.html +44 -21
- unfold/templates/admin/object_history.html +2 -2
- unfold/templates/admin/submit_line.html +8 -8
- unfold/templates/registration/password_change_done.html +1 -1
- unfold/templates/registration/password_change_form.html +1 -1
- unfold/templates/unfold/change_list_filter.html +9 -17
- unfold/templates/unfold/helpers/account_links.html +1 -1
- unfold/templates/unfold/helpers/actions_row.html +9 -7
- unfold/templates/unfold/helpers/delete_submit_line.html +11 -0
- unfold/templates/unfold/helpers/display_header.html +8 -3
- unfold/templates/unfold/helpers/field_readonly.html +1 -1
- unfold/templates/unfold/helpers/field_readonly_value.html +1 -1
- unfold/templates/unfold/helpers/fieldset_row.html +2 -0
- unfold/templates/unfold/helpers/form_label.html +1 -1
- unfold/templates/unfold/helpers/header.html +1 -1
- unfold/templates/unfold/helpers/label.html +1 -1
- unfold/templates/unfold/helpers/language_switch.html +27 -0
- unfold/templates/unfold/helpers/tab_list.html +3 -3
- unfold/templates/unfold/helpers/theme_switch.html +1 -1
- unfold/templates/unfold/helpers/userlinks.html +4 -0
- unfold/templates/unfold/layouts/base_simple.html +1 -1
- unfold/templates/unfold/layouts/skeleton.html +1 -0
- unfold/templates/unfold/templatetags/preserve_changelist_filters.html +3 -0
- unfold/templates/unfold/widgets/split_datetime_vertical.html +1 -1
- unfold/templates/unfold/widgets/url.html +7 -5
- unfold/templatetags/unfold.py +29 -2
- unfold/utils.py +17 -0
- unfold/widgets.py +6 -2
- {django_unfold-0.40.0.dist-info → django_unfold-0.42.0.dist-info}/LICENSE.md +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: django-unfold
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.42.0
|
4
4
|
Summary: Modern Django admin theme for seamless interface development
|
5
5
|
Home-page: https://unfoldadmin.com
|
6
6
|
License: MIT
|
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.10
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
21
22
|
Requires-Dist: django (>=3.2)
|
22
23
|
Project-URL: Repository, https://github.com/unfoldadmin/django-unfold
|
23
24
|
Description-Content-Type: text/markdown
|
@@ -37,6 +38,9 @@ Unfold is a theme for Django admin that incorporates common best practices for b
|
|
37
38
|
- **Unfold:** Demo site is available at [unfoldadmin.com](https://unfoldadmin.com?utm_medium=github&utm_source=unfold).
|
38
39
|
- **Formula:** Repository with demo implementation at [github.com/unfoldadmin/formula](https://github.com/unfoldadmin/formula?utm_medium=github&utm_source=unfold).
|
39
40
|
- **Turbo:** Django & Next.js boilerplate implementing Unfold at [github.com/unfoldadmin/turbo](https://github.com/unfoldadmin/turbo?utm_medium=github&utm_source=unfold).
|
41
|
+
- **Discord:** Join the Unfold community on [Discord](https://discord.gg/9sQj9MEbNz).
|
42
|
+
|
43
|
+
|
40
44
|
|
41
45
|
## Are you using Unfold and need help?
|
42
46
|
|
@@ -56,6 +60,7 @@ Have you decided to start using Unfold but don’t have time to make the switch
|
|
56
60
|
- **Inline tabs:** Groups inlines into tab navigation in the change form.
|
57
61
|
- **Model tabs:** Allows defining custom tab navigation for models.
|
58
62
|
- **Fieldset tabs:** Merges multiple fieldsets into tabs in the change form.
|
63
|
+
- **Sortable inlines:** Allows sorting inlines by dragging and dropping.
|
59
64
|
- **Environment label**: Distinguishes between environments by displaying a label.
|
60
65
|
- **Nonrelated inlines**: Displays nonrelated models as inlines in the change form.
|
61
66
|
- **Favicons**: Built-in support for configuring various site favicons.
|
@@ -1,12 +1,12 @@
|
|
1
1
|
unfold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
unfold/admin.py,sha256=
|
2
|
+
unfold/admin.py,sha256=agIUptBOFAZWqxPLkf4tMaJHd5sz9IOWRNmtXkWCw0c,19971
|
3
3
|
unfold/apps.py,sha256=SlBXPYrUd2uXn67qFbRvbXSUk3XFWrF4-5WELgDCvho,381
|
4
4
|
unfold/checks.py,sha256=Smgji9w19hnYjJElJ_FJnnyTEAE-E-OUB6otHu7lasY,1670
|
5
5
|
unfold/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
6
|
unfold/contrib/filters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
unfold/contrib/filters/admin.py,sha256=
|
7
|
+
unfold/contrib/filters/admin.py,sha256=EXg7eQSVKxobhV0l7Uk4h4zSiEfUB5sJs0qLvfugqRY,21022
|
8
8
|
unfold/contrib/filters/apps.py,sha256=wEySJy0gMLzFLb9XNKE-RexiO05X7NaQ5QmxZyziJ_k,136
|
9
|
-
unfold/contrib/filters/forms.py,sha256=
|
9
|
+
unfold/contrib/filters/forms.py,sha256=p1vfCdhBVEGmvHG0EAtv12B1Ssm2xtXuImL4R0bHOV0,5748
|
10
10
|
unfold/contrib/filters/static/unfold/filters/css/nouislider.min.css,sha256=rddL_jOGGVEY6wR-aw0VYovAfz5fPeAIsulrlSNb1hc,4221
|
11
11
|
unfold/contrib/filters/static/unfold/filters/js/DateTimeShortcuts.js,sha256=jgFNBDf6aHvUlyv0LEDHggXO-xA8pWOCWFWcVupdA30,19332
|
12
12
|
unfold/contrib/filters/static/unfold/filters/js/admin-numeric-filter.js,sha256=nTkiiJk4Abn9d6KigxPSEsereFhFq-v5n_boiiY1eII,1668
|
@@ -23,7 +23,7 @@ unfold/contrib/forms/apps.py,sha256=Di0TMzVuRpVxLG-8Bjdq5ALCSf5r7u2xVhD0jU6H5Sc,
|
|
23
23
|
unfold/contrib/forms/static/unfold/forms/css/trix.css,sha256=TH9WdnaZrmwI8hAEydwjobdrBzSw_KYdRTSQDuD-8hE,20027
|
24
24
|
unfold/contrib/forms/static/unfold/forms/js/trix.config.js,sha256=spkNBlJVk_pqido_rM6yywQxkJ3Kqb7DMLiBgpKksdA,858
|
25
25
|
unfold/contrib/forms/static/unfold/forms/js/trix.js,sha256=HJXkWw7Mtocr7IeyBVplEIeO4X0kUhHHsI1Yra_ZMl8,175599
|
26
|
-
unfold/contrib/forms/templates/unfold/forms/array.html,sha256=
|
26
|
+
unfold/contrib/forms/templates/unfold/forms/array.html,sha256=1Hzg3-5hpoUQAHql3ZkNWqkasWcC68-QLwi-kdS5LoI,1750
|
27
27
|
unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html,sha256=9KeJEP6YE-NOmPU53cYZ9jHwVjgQS2MP5-SP0xT4ccY,9754
|
28
28
|
unfold/contrib/forms/templates/unfold/forms/wysiwyg.html,sha256=uLLf59jsD3apAm9Uh1TH4pwCOtO7pL2djAeZLOHyNAI,399
|
29
29
|
unfold/contrib/forms/widgets.py,sha256=8-KLSRVtgtPDCDKz6sbIrcdvkfbqrFRkInG871WAv2I,3142
|
@@ -31,9 +31,9 @@ unfold/contrib/guardian/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
31
31
|
unfold/contrib/guardian/apps.py,sha256=ObJqwh4vHxkD4XfduP5IQAiYiWZxsXUOUqF1_R1GsRI,136
|
32
32
|
unfold/contrib/guardian/templates/admin/guardian/model/change_form.html,sha256=FSJc4MYYWyzZAy8Ay0b7Ov-cUo-oELHOM5fQehM54Lg,403
|
33
33
|
unfold/contrib/guardian/templates/admin/guardian/model/field.html,sha256=V9ZgmYiIQAFy3GC464y0iBOHm3SDvEEymbuhT3S0qKU,296
|
34
|
-
unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html,sha256=
|
35
|
-
unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html,sha256=
|
36
|
-
unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html,sha256=
|
34
|
+
unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html,sha256=4C7EdB6ueuwk6EfwLURsRz8rb2DuxuB4lPxL09ZAJLg,1435
|
35
|
+
unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html,sha256=WXfRUGPrj4d7OgKFPVMOXHFTeotpdsuaO3P7Uzt8E2A,2331
|
36
|
+
unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html,sha256=vesY2_TqkTPEq4xncGfFHP9mFcAcN1oMJ990b1KUTuU,2329
|
37
37
|
unfold/contrib/guardian/templates/unfold/guardian/group_form.html,sha256=3W-CCW8eb_VAzjLHtbNYBzlxFP_wofQFl9EMO-E4ivQ,3925
|
38
38
|
unfold/contrib/guardian/templates/unfold/guardian/user_form.html,sha256=ZGcndXOn-MeFW3b2bNUr5-PFS85HxLhDoPeR7AIKQ4Q,3914
|
39
39
|
unfold/contrib/import_export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -45,8 +45,8 @@ unfold/contrib/import_export/templates/admin/import_export/change_list_export.ht
|
|
45
45
|
unfold/contrib/import_export/templates/admin/import_export/change_list_export_item.html,sha256=pTDeqPKOlCPKH2dxMIfPnWuc2wVDzB7AzL73WbxSnRY,257
|
46
46
|
unfold/contrib/import_export/templates/admin/import_export/change_list_import_export.html,sha256=JdKd6P2Ot9Ou4yg4CywTauuE1UiTz_mRvDwlx3vj3LI,229
|
47
47
|
unfold/contrib/import_export/templates/admin/import_export/change_list_import_item.html,sha256=XUuRxnsx9YQbKvW-E_JGl_ha7kpTSGSoRefOTTizuX0,233
|
48
|
-
unfold/contrib/import_export/templates/admin/import_export/export.html,sha256=
|
49
|
-
unfold/contrib/import_export/templates/admin/import_export/import.html,sha256=
|
48
|
+
unfold/contrib/import_export/templates/admin/import_export/export.html,sha256=6oI9pzY7sl6AG8ObvI9hY86gBH4DRnj6eWvp9Uw54UA,3456
|
49
|
+
unfold/contrib/import_export/templates/admin/import_export/import.html,sha256=i4LjZOLDnDKHzjHJt45vqFLVC_aBhV1A6QJZuR7CrgI,2134
|
50
50
|
unfold/contrib/import_export/templates/admin/import_export/import_confirm.html,sha256=9DpqVW2TcrC8UrAawBP-6KIzKf0bZDNhpYIWduGTnVc,869
|
51
51
|
unfold/contrib/import_export/templates/admin/import_export/import_errors.html,sha256=edsP56v1xeCezliXTxPIVo8mvv8rdVwh8yz0LeP5Zjk,1430
|
52
52
|
unfold/contrib/import_export/templates/admin/import_export/import_form.html,sha256=mMuMTAbgMbJ1IyCQPBkzmob4m5lJmZ69_QSo3GvvSiY,990
|
@@ -61,67 +61,69 @@ unfold/contrib/inlines/forms.py,sha256=s49xrIkQTbvSMsrP4DydXWkpP1v8NCUmQw_Bcoqf0
|
|
61
61
|
unfold/contrib/simple_history/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
62
|
unfold/contrib/simple_history/apps.py,sha256=eF_KVYb60CAnGgWk2Z1YKYGfgA3TJBMr229qI7e2pgU,153
|
63
63
|
unfold/contrib/simple_history/templates/simple_history/object_history.html,sha256=vX8bIubM54WtpnCCz6Ip2c1ryisaCveUHAakRMj_qE8,751
|
64
|
-
unfold/contrib/simple_history/templates/simple_history/object_history_form.html,sha256=
|
64
|
+
unfold/contrib/simple_history/templates/simple_history/object_history_form.html,sha256=Mc22IgdVTg0W2JsiI3R66wN3lPxOWwpuLcbLQYDQ7OI,2299
|
65
65
|
unfold/contrib/simple_history/templates/simple_history/object_history_list.html,sha256=MvCaPwFwNlSr-kNSJIxBdKhWQmG4OgNJTDPWB-FWUEk,6858
|
66
|
-
unfold/contrib/simple_history/templates/simple_history/submit_line.html,sha256=
|
66
|
+
unfold/contrib/simple_history/templates/simple_history/submit_line.html,sha256=UtC4DMpnIK3slH8txxNA5igBhFzjgFXErNxG5VWqR_k,1711
|
67
67
|
unfold/dataclasses.py,sha256=4PAWLVlUhyGMq1Mwai7afCgrRO0Inulw0opFUKVEOBk,483
|
68
68
|
unfold/decorators.py,sha256=jyjE2sunazp8gK1QIsNRJGEEDwO7RDKWDKnOI3GDWZE,3338
|
69
69
|
unfold/exceptions.py,sha256=gcCj1ox61E137bk_0Cqy4YC3SttdPgB-fiJUqpmyHSE,43
|
70
70
|
unfold/fields.py,sha256=yhtpDfqycpOxqdQlbncCg9qhELxGk3AtXizkZyzzH0g,7410
|
71
71
|
unfold/forms.py,sha256=raPZVYuZ1UQwo5qv8M6KDdprfCvRgjFnYfLdkmBRojI,4118
|
72
|
-
unfold/settings.py,sha256=
|
73
|
-
unfold/sites.py,sha256=
|
72
|
+
unfold/settings.py,sha256=71ygidxvTum58iYRk8Tcujgo09nZJRjNRUQOWdFm-5s,2140
|
73
|
+
unfold/sites.py,sha256=GTClpbOENkPRallC2IrskwtgbqrbuWE5Pr5wsCoB9Us,14566
|
74
74
|
unfold/static/admin/js/admin/RelatedObjectLookups.js,sha256=alI0-yq7YPDJJJn-yg1ce79-Cv88yQDUrfaGqFZnsaY,9048
|
75
|
+
unfold/static/admin/js/inlines.js,sha256=-WGZO7BO07zNGAvb5ZdnR4PjqqhU29gyVMKsBn-PBUw,14577
|
75
76
|
unfold/static/unfold/css/simplebar.css,sha256=5LLaEM11pKi6JFCOLt4XKuZxTpT9rpdq_tNlaQytFlU,4647
|
76
|
-
unfold/static/unfold/css/styles.css,sha256=
|
77
|
+
unfold/static/unfold/css/styles.css,sha256=Vq9hqf8Rc3uU0Wdn13SxhdCfirf8X1_WH0Wc5CdMiNo,115794
|
77
78
|
unfold/static/unfold/fonts/inter/Inter-Bold.woff2,sha256=O88EyjAeRPE_QEyKBKpK5wf2epUOEu8wwjj5bnhCZqE,46552
|
78
79
|
unfold/static/unfold/fonts/inter/Inter-Medium.woff2,sha256=O88EyjAeRPE_QEyKBKpK5wf2epUOEu8wwjj5bnhCZqE,46552
|
79
80
|
unfold/static/unfold/fonts/inter/Inter-Regular.woff2,sha256=O88EyjAeRPE_QEyKBKpK5wf2epUOEu8wwjj5bnhCZqE,46552
|
80
81
|
unfold/static/unfold/fonts/inter/Inter-SemiBold.woff2,sha256=O88EyjAeRPE_QEyKBKpK5wf2epUOEu8wwjj5bnhCZqE,46552
|
81
82
|
unfold/static/unfold/fonts/inter/styles.css,sha256=QqdgevXVfcD6vZGo8ciSkaEG_62_YcZg0hvHTNgJ56E,608
|
82
|
-
unfold/static/unfold/fonts/material-symbols/Material-Symbols-Outlined.woff2,sha256=
|
83
|
-
unfold/static/unfold/fonts/material-symbols/styles.css,sha256=
|
83
|
+
unfold/static/unfold/fonts/material-symbols/Material-Symbols-Outlined.woff2,sha256=V6mmjk69Ee-coQvMsGV0tcNgV3E1nb7N9IKW8HVUBzk,256424
|
84
|
+
unfold/static/unfold/fonts/material-symbols/styles.css,sha256=ZX1icA_BXCVL0eoY2H6XR8VT_Fxl_KnV6vFBm_OImHA,535
|
84
85
|
unfold/static/unfold/js/alpine.anchor.js,sha256=2Jg9aUq749pjFynzr_H1NK3lf-nXrbHMtO9wvlWJyIQ,15524
|
85
86
|
unfold/static/unfold/js/alpine.js,sha256=NY2a-7GrW--i9IBhowd25bzXcH9BCmBrqYX5i8OxwDQ,44659
|
86
87
|
unfold/static/unfold/js/alpine.persist.js,sha256=jFBwr6faTqqhp3sVi4_VTxJ0FpaF9YGZN1ZGLl_5QYM,837
|
87
|
-
unfold/static/unfold/js/
|
88
|
+
unfold/static/unfold/js/alpine.sort.js,sha256=q6LxgConwu8M8R03mZSBcsKwJv6fF7oomP8sqLxVQ0w,37891
|
89
|
+
unfold/static/unfold/js/app.js,sha256=BblUrP4UxZWGRcjHErfixPmC2LfYBA4dpGl2oXb-xDE,8216
|
88
90
|
unfold/static/unfold/js/chart.js,sha256=22W6cFERR-CElMOKRgMMicueMVP0Vf7FBEBYH8Z8tCk,200633
|
89
91
|
unfold/static/unfold/js/htmx.js,sha256=XOLqvnZiyEx46EW9vaJTBUaaWg8CGVVfXJkVsUmJbpI,42820
|
90
|
-
unfold/static/unfold/js/select2.init.js,sha256=
|
92
|
+
unfold/static/unfold/js/select2.init.js,sha256=siSDCwzy2PsOwA0Kj26JA_ELBtZlS70O8D8f1qTMmqg,291
|
91
93
|
unfold/static/unfold/js/simplebar.js,sha256=t-uG1FAD6ZoiMeN--wac0XRS7SxoDVG6zvRnGuEp7X8,27176
|
92
|
-
unfold/styles.css,sha256=
|
94
|
+
unfold/styles.css,sha256=sYekwcivglCDa8zVo21pCY-3XyiyXcCHMK6AVGc-eHs,18531
|
93
95
|
unfold/templates/admin/actions.html,sha256=8GqELAxzywGyfQJiQeuhGIQUakdK_WeneILY06C7mEo,2746
|
94
|
-
unfold/templates/admin/app_index.html,sha256=
|
96
|
+
unfold/templates/admin/app_index.html,sha256=fphodUAgaL7X4pOz-QxiWOKnESEs8wRqPoShSF6iBaU,1345
|
95
97
|
unfold/templates/admin/app_list.html,sha256=avKk-Dj_4GY_izBKWsb_yNHxUyVpdRbDBZuoxlIEdN0,2817
|
96
98
|
unfold/templates/admin/auth/user/add_form.html,sha256=L0ylU7BLEIoZc3nS4Rq6DA0H94HQ3aXFr-iwK0vp2Bs,482
|
97
|
-
unfold/templates/admin/auth/user/change_password.html,sha256
|
98
|
-
unfold/templates/admin/base.html,sha256=
|
99
|
+
unfold/templates/admin/auth/user/change_password.html,sha256=q7RMscF4thZisdt5CrZLugk-MWDr8DgQ-3KXDv2QlGk,2902
|
100
|
+
unfold/templates/admin/base.html,sha256=9iTxs17eoeBhdUbnvq_fpq_gKmO9_D9XMnAuRdDESsE,2364
|
99
101
|
unfold/templates/admin/base_site.html,sha256=FM8OOaXsQqJlYapeJvBznXCOt7poMiWrweTWcsMHzeI,365
|
100
|
-
unfold/templates/admin/change_form.html,sha256=
|
102
|
+
unfold/templates/admin/change_form.html,sha256=U4bsIz17mk46ylgxFG8VEfnVp3FBbbCCzE7mgzMQ9es,4990
|
101
103
|
unfold/templates/admin/change_form_object_tools.html,sha256=eyeH-i2HgEM0Yi-OJA2D1VnKJyC19A_my1IDGxxoP8Y,593
|
102
|
-
unfold/templates/admin/change_list.html,sha256=
|
104
|
+
unfold/templates/admin/change_list.html,sha256=qpfVyQC6S-ypJZeYqPGBDvksw182d2fUH9KDmbTr9SI,5634
|
103
105
|
unfold/templates/admin/change_list_object_tools.html,sha256=cmMiT2nT20Ph5yfpj9aHPr76Z-JP4aSXp0o-Rnad28s,147
|
104
106
|
unfold/templates/admin/change_list_results.html,sha256=Nb-NbQYalqGJ9TRW4B1RZrS2ePhbyWtXi_K-tBn1DQs,5502
|
105
|
-
unfold/templates/admin/date_hierarchy.html,sha256=
|
106
|
-
unfold/templates/admin/delete_confirmation.html,sha256=
|
107
|
-
unfold/templates/admin/delete_selected_confirmation.html,sha256=
|
108
|
-
unfold/templates/admin/edit_inline/stacked.html,sha256=
|
109
|
-
unfold/templates/admin/edit_inline/tabular.html,sha256=
|
107
|
+
unfold/templates/admin/date_hierarchy.html,sha256=yMiZ3h2Sfl1JxoOHu9SmOoGvvboGOEFq20L8bPjuy2s,1411
|
108
|
+
unfold/templates/admin/delete_confirmation.html,sha256=atSK7BJyqisCNJa_xYL9FItaMkT16WpQp7bg6v51ay0,4628
|
109
|
+
unfold/templates/admin/delete_selected_confirmation.html,sha256=cVmF3XbxZbuHgUzhteFGC_vrz5goi6h5cy_XbP7twhw,4397
|
110
|
+
unfold/templates/admin/edit_inline/stacked.html,sha256=JKWBS51A_af52mgUedPc4dg5T0Gu00ehLDbUWLn866E,7733
|
111
|
+
unfold/templates/admin/edit_inline/tabular.html,sha256=ytdjFxOjBWAPokqtmfbjsNVXoFYSK3jZIRxnsZGuaGQ,15141
|
110
112
|
unfold/templates/admin/filter.html,sha256=wgYuP_ZmTofljsavLe4t8djAZnXRfEmz5U40SI-2Hjc,1640
|
111
113
|
unfold/templates/admin/includes/fieldset.html,sha256=eyo5icIIrihKBLT7k3FCgoVhK55Lb78eIp7tIUNXLvU,975
|
112
114
|
unfold/templates/admin/includes/object_delete_summary.html,sha256=w_lPVnBrng0oqvFy6rzvr8c5bzdU8GpqvYUAvaXza0c,444
|
113
115
|
unfold/templates/admin/index.html,sha256=pkGdKWdD3zzOvkRdELvdb15sleSpfl4eHPA14PAh7z0,684
|
114
116
|
unfold/templates/admin/login.html,sha256=Xw50tZZxESEwz9YOcV1CSPeyyI2H1l0q4x4zBrC4dps,4170
|
115
117
|
unfold/templates/admin/nav_sidebar.html,sha256=31g1dbGHe7m_8GXFrehLqWD84Nx7jEoeLhyNBZbaqRM,1163
|
116
|
-
unfold/templates/admin/object_history.html,sha256=
|
118
|
+
unfold/templates/admin/object_history.html,sha256=0NvY31OEO0g8JHEYVzUUhg95nJxOto2J0I_K4sMf6wc,4825
|
117
119
|
unfold/templates/admin/pagination.html,sha256=KrwOM6gRizfpTMP59TESQaNGcQzkga2k02opl_7BxLo,1130
|
118
120
|
unfold/templates/admin/search_form.html,sha256=NNTJ38yABrSBOet3ivkbzciYHd_I_mGHlgRvLHSL5ig,1219
|
119
|
-
unfold/templates/admin/submit_line.html,sha256=
|
121
|
+
unfold/templates/admin/submit_line.html,sha256=ij1DDrmBRPM2DL5CnC4Aby0v55WgtsdZzrd8nUukUoE,4165
|
120
122
|
unfold/templates/auth/widgets/read_only_password_hash.html,sha256=UK36u2lYyiY_oSWuzlH_54Kjc1RzgO3Y1VaqJPyXk_Y,754
|
121
123
|
unfold/templates/registration/logged_out.html,sha256=cg4YjMbVtuMdOJD3hkkJZntv0G8gnzQYkDpZJVRNM2g,995
|
122
|
-
unfold/templates/registration/password_change_done.html,sha256=
|
123
|
-
unfold/templates/registration/password_change_form.html,sha256=
|
124
|
-
unfold/templates/unfold/change_list_filter.html,sha256=
|
124
|
+
unfold/templates/registration/password_change_done.html,sha256=MjwUFjMoM26GcQ4sduh5afNzt11HbOVFEVb4nZ6bdD8,1080
|
125
|
+
unfold/templates/registration/password_change_form.html,sha256=YKIjlijh9wTFkCO-KWgNBxZdgx4RzXUWr4l2zO1ZNJA,2235
|
126
|
+
unfold/templates/unfold/change_list_filter.html,sha256=ie3M5Nau5xchwkCMfrLfDX60vyM3j_3pD5SmN2sDOx0,3456
|
125
127
|
unfold/templates/unfold/components/button.html,sha256=E9B5Y0ZzUrFmw50tK8Fi8-V0V6-ONbWcBMuyoxaDjSI,476
|
126
128
|
unfold/templates/unfold/components/card.html,sha256=3HHpqXOYS1b9yPa-ipbsWHBJUuI4knmk2od5B9kMcIs,1087
|
127
129
|
unfold/templates/unfold/components/chart/bar.html,sha256=nDdDCUXvFd793OpNgNPQo0vBmvYngMsQyPHVTf1vfOw,297
|
@@ -135,27 +137,29 @@ unfold/templates/unfold/components/separator.html,sha256=TlKnvg1h3diDvm9A_FWc2at
|
|
135
137
|
unfold/templates/unfold/components/table.html,sha256=iC7mhLlPLRgCaV0sVjEkxIR7A4NLV2-rSHqEbmwpaHw,2028
|
136
138
|
unfold/templates/unfold/components/text.html,sha256=-GjxvdiaBQIaNfPSzT6SSIwnc3R27FkSDQMoF3FDPso,102
|
137
139
|
unfold/templates/unfold/components/title.html,sha256=aMYSO30ybFYqPnqwlJVh2uNmcgnVrRycZkHTjJTjpX8,171
|
138
|
-
unfold/templates/unfold/helpers/account_links.html,sha256=
|
139
|
-
unfold/templates/unfold/helpers/actions_row.html,sha256=
|
140
|
+
unfold/templates/unfold/helpers/account_links.html,sha256=QRcsosWnq3cHH6UMmxGAFZTomOWubbwfn4NymFAQ-XA,1863
|
141
|
+
unfold/templates/unfold/helpers/actions_row.html,sha256=1cZ6eI-ljhuaRIeb8AQkELCwuCchom9uwOITdkhKc-4,1931
|
140
142
|
unfold/templates/unfold/helpers/add_link.html,sha256=CUFZ3quvp1JMAPmTkFRjpUXSy9GVXnIWNcRzv_gpq1A,810
|
141
143
|
unfold/templates/unfold/helpers/app_list.html,sha256=zeMeiSK-vlxrgP-jDkIN1k1mYCog033ybBSxw5POWvs,5516
|
142
144
|
unfold/templates/unfold/helpers/app_list_default.html,sha256=T8xXI0LsEZCyttxXZGomGMkqEd8Wxj61RCYQ4YDxlHE,3908
|
143
145
|
unfold/templates/unfold/helpers/attrs.html,sha256=Mwpj72kuwYj8hOT3J2T8qx6f1r_4xwwaS1slHA-82jI,166
|
144
146
|
unfold/templates/unfold/helpers/boolean.html,sha256=6gXAMEJcNVB14je9uN32dxImXP3KMCiWPeKU5EAnawA,569
|
145
147
|
unfold/templates/unfold/helpers/breadcrumb_item.html,sha256=Q9Usvwz2iGI9AYlNgyN0OZ9ZPftcoaXk37nxsFmCJSE,201
|
146
|
-
unfold/templates/unfold/helpers/
|
148
|
+
unfold/templates/unfold/helpers/delete_submit_line.html,sha256=4aijRBjLFqVDZpUxUz_DfLS39IHl0-aTCCD5dyXW_qY,671
|
149
|
+
unfold/templates/unfold/helpers/display_header.html,sha256=HFuiSsgjrrfUFd8uwsxNiHbe4Mpt-9BeaUShgwbGGbo,1701
|
147
150
|
unfold/templates/unfold/helpers/display_label.html,sha256=LS9DWzYjHkYLV27sZDwyXlg2sLJ0AlId9FbjnXpsbfg,317
|
148
151
|
unfold/templates/unfold/helpers/field.html,sha256=Ds-zUHkdyxamfUCVNhxvtM0XoJg9OCA0QcsLbLWv4oo,882
|
149
|
-
unfold/templates/unfold/helpers/field_readonly.html,sha256=
|
150
|
-
unfold/templates/unfold/helpers/field_readonly_value.html,sha256=
|
151
|
-
unfold/templates/unfold/helpers/fieldset_row.html,sha256=
|
152
|
+
unfold/templates/unfold/helpers/field_readonly.html,sha256=QbX4jWVFCVvW6ZxOTxcGcarLUtUoCOH5KTIBwAodRzo,237
|
153
|
+
unfold/templates/unfold/helpers/field_readonly_value.html,sha256=E6eIJbO-Y2TWmmzpffC5F3l7KYZ8G-QxstUIHTVRjKg,461
|
154
|
+
unfold/templates/unfold/helpers/fieldset_row.html,sha256=Eh2OO1WjqSs-wkGIo-d-ZfAE5dlp_n6lDd7uuX26_Pc,4374
|
152
155
|
unfold/templates/unfold/helpers/fieldsets_tabs.html,sha256=GjFPlQgL-qv8bbxje5Zm1XL9v2_qFh-U3wcVvAOO5sE,1529
|
153
156
|
unfold/templates/unfold/helpers/form_errors.html,sha256=EwerIJptSCWXvtAJ1IZKfEn98qlShBIGavsTThbklAs,266
|
154
|
-
unfold/templates/unfold/helpers/form_label.html,sha256=
|
155
|
-
unfold/templates/unfold/helpers/header.html,sha256
|
157
|
+
unfold/templates/unfold/helpers/form_label.html,sha256=BRX3DxVQfEvcmpFcRuhl4v_icMCCd5O_zmYm6MGLtts,327
|
158
|
+
unfold/templates/unfold/helpers/header.html,sha256=Cl2rNccSi7HCf-Sl3g2YFe9DVVv6_Kw5GiV3Z0qHoaU,1050
|
156
159
|
unfold/templates/unfold/helpers/help_text.html,sha256=o-2_hyruIr_Xt0fo38aGgrpptPJFhddnVMPOVQOYhE4,113
|
157
160
|
unfold/templates/unfold/helpers/history.html,sha256=tfpOWNDzo2k7orcb7avfFBWVFe8Z5yVxtMkshD2C42E,1927
|
158
|
-
unfold/templates/unfold/helpers/label.html,sha256=
|
161
|
+
unfold/templates/unfold/helpers/label.html,sha256=ye13yN-yY_A9Oe_9CEUJSwCgc7wWwgNdSc1zaeUtcJ8,900
|
162
|
+
unfold/templates/unfold/helpers/language_switch.html,sha256=1B53ken8CmwOcaPzjJ7D_EP2B_ToTaMJxQLdKk47uSQ,1463
|
159
163
|
unfold/templates/unfold/helpers/messages/error.html,sha256=mlHVdfpG2ycsKIDBJB9CZs6fM4bMGkpmJvtxHjEApjE,558
|
160
164
|
unfold/templates/unfold/helpers/messages/errornote.html,sha256=5ChxoVYkF4jI-cw72gVHh0CRxDnG9ME_U6UQOArax2k,404
|
161
165
|
unfold/templates/unfold/helpers/messages/info.html,sha256=js95Hm3CzqpP6_XJpnA2vG7qt8eyHmJJJcDF0e5PLtQ,143
|
@@ -169,13 +173,14 @@ unfold/templates/unfold/helpers/site_icon.html,sha256=MWGECpFsRJcBJiLLxDbUUKTYLN
|
|
169
173
|
unfold/templates/unfold/helpers/site_logo.html,sha256=05tqXzHy--pluceRQ2jDUZCFX9DjPHdBqGaieUv9sXk,424
|
170
174
|
unfold/templates/unfold/helpers/submit.html,sha256=oSzq85LRLhdOlbFtFZFhYm6ucT95u6LunTeSTDClszQ,206
|
171
175
|
unfold/templates/unfold/helpers/tab_action.html,sha256=Hq20p5yRWi-wPwkFVI5uekoAFI4IlkucYr7o1qjlrYw,325
|
172
|
-
unfold/templates/unfold/helpers/tab_list.html,sha256=
|
173
|
-
unfold/templates/unfold/helpers/theme_switch.html,sha256=
|
174
|
-
unfold/templates/unfold/helpers/userlinks.html,sha256=
|
176
|
+
unfold/templates/unfold/helpers/tab_list.html,sha256=MN8EzKsN7hBzTtlC71E1haSsDz2mCAhENLnVCi_00a0,4515
|
177
|
+
unfold/templates/unfold/helpers/theme_switch.html,sha256=LzMTlNEbZaMN8UpdXoVZ6_cFCX1iBd1UcmT3gmCZOYE,2196
|
178
|
+
unfold/templates/unfold/helpers/userlinks.html,sha256=yg6b17oFDzN9US7rnbzwwrmIzdull0yOc76nu2y_E-c,763
|
175
179
|
unfold/templates/unfold/helpers/welcomemsg.html,sha256=u-svEbNA-lg_hYM2ZGWJWuffSjkDNyyu8qa0O-5Q0yE,1263
|
176
180
|
unfold/templates/unfold/layouts/base.html,sha256=bAXZDbyiyxNiE-49mqr7pHUFhC2mHZQzIDUY-js_yZ0,379
|
177
|
-
unfold/templates/unfold/layouts/base_simple.html,sha256=
|
178
|
-
unfold/templates/unfold/layouts/skeleton.html,sha256=
|
181
|
+
unfold/templates/unfold/layouts/base_simple.html,sha256=Znb4SJqQ0Bk-sz4nPHrQXjLQtjmO6x1_xVtq7HxsJTI,1178
|
182
|
+
unfold/templates/unfold/layouts/skeleton.html,sha256=IhCy6o2C7tdJKCYN5PusV6ET-rv-UHNCzwBkvVcwglM,4146
|
183
|
+
unfold/templates/unfold/templatetags/preserve_changelist_filters.html,sha256=sx2jUhogNY4emBhY8PqxQ6mXifbXQb_IQI9Hd0boJI0,111
|
179
184
|
unfold/templates/unfold/widgets/clearable_file_input.html,sha256=MOJXfId4e5jr6wnQJlFl0lwo4s9wwOicg_hQehx9bh8,2152
|
180
185
|
unfold/templates/unfold/widgets/clearable_file_input_small.html,sha256=rChcaCdL34mDFjQUrpYOJdzey01EOMWm7_hsyclwLE8,2802
|
181
186
|
unfold/templates/unfold/widgets/date.html,sha256=WXo2LG1v_gBZBSg-zocj7oujMKI0MWLYCIFfB04HMLQ,122
|
@@ -185,20 +190,20 @@ unfold/templates/unfold/widgets/radio_option.html,sha256=UVgNUd_DuIHc4tRpnvYnJwG
|
|
185
190
|
unfold/templates/unfold/widgets/range.html,sha256=oyA1EZRHotsAlLZfpy6oTiurEH4ygHnaUIAlpz99zKo,294
|
186
191
|
unfold/templates/unfold/widgets/related_widget_wrapper.html,sha256=YqKQ0PuHmEr_vp3eq7shcM87Cs-T8P1j-FXIhUa6vp4,3830
|
187
192
|
unfold/templates/unfold/widgets/split_datetime.html,sha256=-3nXwdQitkG_QtMXtQx76kO2_Z1F6xwPYmnjybBDLBo,1606
|
188
|
-
unfold/templates/unfold/widgets/split_datetime_vertical.html,sha256=
|
193
|
+
unfold/templates/unfold/widgets/split_datetime_vertical.html,sha256=39lZsRyRcKr8DIcy9oL39zC8nAHZTHwW6gyTYOKePrQ,806
|
189
194
|
unfold/templates/unfold/widgets/split_money.html,sha256=AFLUBmzGbY-RXgsfz7gaDxVRhplaIPhXjg_hWYo9xcY,352
|
190
195
|
unfold/templates/unfold/widgets/textarea.html,sha256=-ZLDGrtASero7L-J3VvTNq_KjPAZh_kLVw0Ow3awqXM,144
|
191
196
|
unfold/templates/unfold/widgets/textarea_expandable.html,sha256=4xIGWb20DuwiwumndByrAyh7xF-ReXKLulSpDImX_cs,459
|
192
197
|
unfold/templates/unfold/widgets/time.html,sha256=WXo2LG1v_gBZBSg-zocj7oujMKI0MWLYCIFfB04HMLQ,122
|
193
|
-
unfold/templates/unfold/widgets/url.html,sha256=
|
198
|
+
unfold/templates/unfold/widgets/url.html,sha256=IRLgW44VTKN7UrSWeywJwaxQhfG5jhhXuT-KTadKX58,304
|
194
199
|
unfold/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
195
|
-
unfold/templatetags/unfold.py,sha256=
|
200
|
+
unfold/templatetags/unfold.py,sha256=NY6Ei1vaWiBlkVRAI1iWB-r2Ex6uCCSnNqjcmoeXgpE,7780
|
196
201
|
unfold/templatetags/unfold_list.py,sha256=ofVee2a5WtBVNFExzqxvn8UrSxmPzczR4gF5jTbu0zU,13986
|
197
202
|
unfold/typing.py,sha256=1P8PWM2oeaceUJtA5j071RbKEBpHYaux441u7Hd6wv4,643
|
198
|
-
unfold/utils.py,sha256=
|
203
|
+
unfold/utils.py,sha256=36WgmgGRayf_fkNtjoFoI1_G9w8f8gZflNzzqQ3256U,5459
|
199
204
|
unfold/views.py,sha256=hQCyeeMa9kcJV1IZeeYqj8PGW7J4QWME8n-5n0UGmiU,1003
|
200
|
-
unfold/widgets.py,sha256=
|
201
|
-
django_unfold-0.
|
202
|
-
django_unfold-0.
|
203
|
-
django_unfold-0.
|
204
|
-
django_unfold-0.
|
205
|
+
unfold/widgets.py,sha256=wwiAbb_7-UWvFcH3HdnTv5f26fjiQn0h5tlAK3-kXVY,17186
|
206
|
+
django_unfold-0.42.0.dist-info/LICENSE.md,sha256=Ltk_quRyyvV3J5v3brtOqmibeZSw2Hrb8bY1W3ya0Ik,1077
|
207
|
+
django_unfold-0.42.0.dist-info/METADATA,sha256=M7AC-pj3uQl6FtQpsgiCh134dsa4Gla11_BT8yZgbng,4699
|
208
|
+
django_unfold-0.42.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
209
|
+
django_unfold-0.42.0.dist-info/RECORD,,
|
unfold/admin.py
CHANGED
@@ -233,6 +233,7 @@ class ModelAdmin(ModelAdminMixin, BaseModelAdmin):
|
|
233
233
|
add_fieldsets = ()
|
234
234
|
list_horizontal_scrollbar_top = False
|
235
235
|
list_filter_submit = False
|
236
|
+
list_filter_sheet = True
|
236
237
|
list_fullwidth = False
|
237
238
|
list_disable_select_all = False
|
238
239
|
list_before_template = None
|
@@ -471,7 +472,12 @@ class ModelAdmin(ModelAdminMixin, BaseModelAdmin):
|
|
471
472
|
for action in self.get_actions_row(request)
|
472
473
|
]
|
473
474
|
|
474
|
-
extra_context.update(
|
475
|
+
extra_context.update(
|
476
|
+
{
|
477
|
+
"actions_list": actions,
|
478
|
+
"actions_row": actions_row,
|
479
|
+
}
|
480
|
+
)
|
475
481
|
|
476
482
|
return super().changelist_view(request, extra_context)
|
477
483
|
|
@@ -560,8 +566,12 @@ class ModelAdmin(ModelAdminMixin, BaseModelAdmin):
|
|
560
566
|
class TabularInline(ModelAdminMixin, BaseTabularInline):
|
561
567
|
formfield_overrides = FORMFIELD_OVERRIDES_INLINE
|
562
568
|
readonly_preprocess_fields = {}
|
569
|
+
ordering_field = None
|
570
|
+
hide_ordering_field = False
|
563
571
|
|
564
572
|
|
565
573
|
class StackedInline(ModelAdminMixin, BaseStackedInline):
|
566
574
|
formfield_overrides = FORMFIELD_OVERRIDES_INLINE
|
567
575
|
readonly_preprocess_fields = {}
|
576
|
+
ordering_field = None
|
577
|
+
hide_ordering_field = False
|
unfold/contrib/filters/admin.py
CHANGED
@@ -16,9 +16,10 @@ from django.db.models.fields import (
|
|
16
16
|
)
|
17
17
|
from django.forms import ValidationError
|
18
18
|
from django.http import HttpRequest
|
19
|
-
from django.utils.dateparse import parse_datetime
|
20
19
|
from django.utils.translation import gettext_lazy as _
|
21
20
|
|
21
|
+
from unfold.utils import parse_date_str, parse_datetime_str
|
22
|
+
|
22
23
|
from .forms import (
|
23
24
|
DropdownForm,
|
24
25
|
RangeDateForm,
|
@@ -468,25 +469,13 @@ class RangeDateFilter(admin.FieldListFilter):
|
|
468
469
|
def queryset(self, request: HttpRequest, queryset: QuerySet) -> QuerySet:
|
469
470
|
filters = {}
|
470
471
|
|
471
|
-
value_from = self.used_parameters.get(self.parameter_name + "_from"
|
472
|
+
value_from = self.used_parameters.get(self.parameter_name + "_from")
|
472
473
|
if value_from not in EMPTY_VALUES:
|
473
|
-
filters.update(
|
474
|
-
{
|
475
|
-
self.parameter_name + "__gte": self.used_parameters.get(
|
476
|
-
self.parameter_name + "_from", None
|
477
|
-
),
|
478
|
-
}
|
479
|
-
)
|
474
|
+
filters.update({self.parameter_name + "__gte": parse_date_str(value_from)})
|
480
475
|
|
481
|
-
value_to = self.used_parameters.get(self.parameter_name + "_to"
|
476
|
+
value_to = self.used_parameters.get(self.parameter_name + "_to")
|
482
477
|
if value_to not in EMPTY_VALUES:
|
483
|
-
filters.update(
|
484
|
-
{
|
485
|
-
self.parameter_name + "__lte": self.used_parameters.get(
|
486
|
-
self.parameter_name + "_to", None
|
487
|
-
),
|
488
|
-
}
|
489
|
-
)
|
478
|
+
filters.update({self.parameter_name + "__lte": parse_date_str(value_to)})
|
490
479
|
|
491
480
|
try:
|
492
481
|
return queryset.filter(**filters)
|
@@ -546,18 +535,22 @@ class RangeDateTimeFilter(admin.FieldListFilter):
|
|
546
535
|
|
547
536
|
if self.parameter_name + "_from_0" in params:
|
548
537
|
value = params.pop(self.field_path + "_from_0")
|
538
|
+
value = value[0] if isinstance(value, list) else value
|
549
539
|
self.used_parameters[self.field_path + "_from_0"] = value
|
550
540
|
|
551
541
|
if self.parameter_name + "_from_1" in params:
|
552
542
|
value = params.pop(self.field_path + "_from_1")
|
543
|
+
value = value[0] if isinstance(value, list) else value
|
553
544
|
self.used_parameters[self.field_path + "_from_1"] = value
|
554
545
|
|
555
546
|
if self.parameter_name + "_to_0" in params:
|
556
547
|
value = params.pop(self.field_path + "_to_0")
|
548
|
+
value = value[0] if isinstance(value, list) else value
|
557
549
|
self.used_parameters[self.field_path + "_to_0"] = value
|
558
550
|
|
559
551
|
if self.parameter_name + "_to_1" in params:
|
560
552
|
value = params.pop(self.field_path + "_to_1")
|
553
|
+
value = value[0] if isinstance(value, list) else value
|
561
554
|
self.used_parameters[self.field_path + "_to_1"] = value
|
562
555
|
|
563
556
|
def expected_parameters(self) -> List[str]:
|
@@ -571,20 +564,17 @@ class RangeDateTimeFilter(admin.FieldListFilter):
|
|
571
564
|
def queryset(self, request: HttpRequest, queryset: QuerySet) -> QuerySet:
|
572
565
|
filters = {}
|
573
566
|
|
574
|
-
date_value_from = self.used_parameters.get(
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
)
|
580
|
-
date_value_to = self.used_parameters.get(self.parameter_name + "_to_0", None)
|
581
|
-
time_value_to = self.used_parameters.get(self.parameter_name + "_to_1", None)
|
567
|
+
date_value_from = self.used_parameters.get(self.parameter_name + "_from_0")
|
568
|
+
time_value_from = self.used_parameters.get(self.parameter_name + "_from_1")
|
569
|
+
|
570
|
+
date_value_to = self.used_parameters.get(self.parameter_name + "_to_0")
|
571
|
+
time_value_to = self.used_parameters.get(self.parameter_name + "_to_1")
|
582
572
|
|
583
573
|
if date_value_from not in EMPTY_VALUES and time_value_from not in EMPTY_VALUES:
|
584
574
|
filters.update(
|
585
575
|
{
|
586
|
-
f"{self.parameter_name}__gte":
|
587
|
-
f"{date_value_from}
|
576
|
+
f"{self.parameter_name}__gte": parse_datetime_str(
|
577
|
+
f"{date_value_from} {time_value_from}"
|
588
578
|
),
|
589
579
|
}
|
590
580
|
)
|
@@ -592,8 +582,8 @@ class RangeDateTimeFilter(admin.FieldListFilter):
|
|
592
582
|
if date_value_to not in EMPTY_VALUES and time_value_to not in EMPTY_VALUES:
|
593
583
|
filters.update(
|
594
584
|
{
|
595
|
-
f"{self.parameter_name}__lte":
|
596
|
-
f"{date_value_to}
|
585
|
+
f"{self.parameter_name}__lte": parse_datetime_str(
|
586
|
+
f"{date_value_to} {time_value_to}"
|
597
587
|
),
|
598
588
|
}
|
599
589
|
)
|
@@ -612,16 +602,16 @@ class RangeDateTimeFilter(admin.FieldListFilter):
|
|
612
602
|
name=self.parameter_name,
|
613
603
|
data={
|
614
604
|
self.parameter_name + "_from_0": self.used_parameters.get(
|
615
|
-
self.parameter_name + "_from_0"
|
605
|
+
self.parameter_name + "_from_0"
|
616
606
|
),
|
617
607
|
self.parameter_name + "_from_1": self.used_parameters.get(
|
618
|
-
self.parameter_name + "_from_1"
|
608
|
+
self.parameter_name + "_from_1"
|
619
609
|
),
|
620
610
|
self.parameter_name + "_to_0": self.used_parameters.get(
|
621
|
-
self.parameter_name + "_to_0"
|
611
|
+
self.parameter_name + "_to_0"
|
622
612
|
),
|
623
613
|
self.parameter_name + "_to_1": self.used_parameters.get(
|
624
|
-
self.parameter_name + "_to_1"
|
614
|
+
self.parameter_name + "_to_1"
|
625
615
|
),
|
626
616
|
},
|
627
617
|
),
|
unfold/contrib/filters/forms.py
CHANGED
@@ -26,7 +26,7 @@ class DropdownForm(forms.Form):
|
|
26
26
|
widget = UnfoldAdminSelectWidget(
|
27
27
|
attrs={
|
28
28
|
"data-theme": "admin-autocomplete",
|
29
|
-
"class": "admin-autocomplete",
|
29
|
+
"class": "unfold-admin-autocomplete admin-autocomplete",
|
30
30
|
}
|
31
31
|
)
|
32
32
|
field = ChoiceField
|
@@ -38,7 +38,7 @@ class DropdownForm(forms.Form):
|
|
38
38
|
self.widget = UnfoldAdminSelectMultipleWidget(
|
39
39
|
attrs={
|
40
40
|
"data-theme": "admin-autocomplete",
|
41
|
-
"class": "admin-autocomplete",
|
41
|
+
"class": "unfold-admin-autocomplete admin-autocomplete",
|
42
42
|
}
|
43
43
|
)
|
44
44
|
self.field = MultipleChoiceField
|
@@ -14,7 +14,7 @@
|
|
14
14
|
{% endfor %}
|
15
15
|
|
16
16
|
<template x-for="(item, index) in items" :key="item.key">
|
17
|
-
<div class="flex flex-row">
|
17
|
+
<div class="flex flex-row" x-init="if ($el.getElementsByTagName('input')[0].name.includes('__prefix__')) { $el.getElementsByTagName('input')[0].name = $el.parentElement.getElementsByTagName('input')[0].name }">
|
18
18
|
{% with widget=template %}
|
19
19
|
{% include template.template_name %}
|
20
20
|
{% endwith %}
|
@@ -26,7 +26,7 @@
|
|
26
26
|
</template>
|
27
27
|
|
28
28
|
<div class="flex flex-row">
|
29
|
-
<div x-on:click="items.push({ key: new Date().getTime()})" class="bg-primary-600 border border-transparent cursor-pointer font-medium inline-block px-3 py-2 rounded-md text-sm text-white w-full lg:w-auto">
|
29
|
+
<div x-on:click="items.push({ key: new Date().getTime()})" class="bg-primary-600 border border-transparent cursor-pointer font-medium inline-block px-3 py-2 rounded-md text-center text-sm text-white w-full lg:w-auto">
|
30
30
|
{% trans "Add new item" %}
|
31
31
|
</div>
|
32
32
|
</div>
|
@@ -3,9 +3,9 @@
|
|
3
3
|
{% load admin_urls i18n guardian_tags %}
|
4
4
|
|
5
5
|
{% block breadcrumbs %}{% if not is_popup %}
|
6
|
-
<div class="px-4 lg:px-
|
6
|
+
<div class="px-4 lg:px-8">
|
7
7
|
<div class="container mb-6 mx-auto -my-3 lg:mb-12">
|
8
|
-
<ul class="flex">
|
8
|
+
<ul class="flex flex-wrap">
|
9
9
|
{% url 'admin:index' as link %}
|
10
10
|
{% trans 'Home' as name %}
|
11
11
|
{% include 'unfold/helpers/breadcrumb_item.html' with link=link name=name %}
|
@@ -6,9 +6,9 @@
|
|
6
6
|
{% endblock %}
|
7
7
|
|
8
8
|
{% block breadcrumbs %}{% if not is_popup %}
|
9
|
-
<div class="px-4 lg:px-
|
9
|
+
<div class="px-4 lg:px-8">
|
10
10
|
<div class="container mb-6 mx-auto -my-3 lg:mb-12">
|
11
|
-
<ul class="flex">
|
11
|
+
<ul class="flex flex-wrap">
|
12
12
|
{% url 'admin:index' as link %}
|
13
13
|
{% trans 'Home' as name %}
|
14
14
|
{% include 'unfold/helpers/breadcrumb_item.html' with link=link name=name %}
|
@@ -7,9 +7,9 @@
|
|
7
7
|
{% endblock %}
|
8
8
|
|
9
9
|
{% block breadcrumbs %}{% if not is_popup %}
|
10
|
-
<div class="px-4 lg:px-
|
10
|
+
<div class="px-4 lg:px-8">
|
11
11
|
<div class="container mb-6 mx-auto -my-3 lg:mb-12">
|
12
|
-
<ul class="flex">
|
12
|
+
<ul class="flex flex-wrap">
|
13
13
|
{% url 'admin:index' as link %}
|
14
14
|
{% trans 'Home' as name %}
|
15
15
|
{% include 'unfold/helpers/breadcrumb_item.html' with link=link name=name %}
|
@@ -10,9 +10,9 @@
|
|
10
10
|
{% endblock %}
|
11
11
|
|
12
12
|
{% block breadcrumbs %}
|
13
|
-
<div class="px-4 lg:px-
|
13
|
+
<div class="px-4 lg:px-8">
|
14
14
|
<div class="container mb-6 mx-auto -my-3 lg:mb-12">
|
15
|
-
<ul class="flex">
|
15
|
+
<ul class="flex flex-wrap">
|
16
16
|
{% url 'admin:index' as link %}
|
17
17
|
{% trans 'Home' as name %}
|
18
18
|
{% include 'unfold/helpers/breadcrumb_item.html' with link=link name=name %}
|
@@ -21,9 +21,9 @@
|
|
21
21
|
{% endblock %}
|
22
22
|
|
23
23
|
{% block breadcrumbs %}
|
24
|
-
<div class="px-4 lg:px-
|
24
|
+
<div class="px-4 lg:px-8">
|
25
25
|
<div class="container mb-6 mx-auto -my-3 lg:mb-12">
|
26
|
-
<ul class="flex">
|
26
|
+
<ul class="flex flex-wrap">
|
27
27
|
{% url 'admin:index' as link %}
|
28
28
|
{% trans 'Home' as name %}
|
29
29
|
{% include 'unfold/helpers/breadcrumb_item.html' with link=link name=name %}
|
@@ -4,9 +4,9 @@
|
|
4
4
|
{% load url from simple_history_compat %}
|
5
5
|
|
6
6
|
{% block breadcrumbs %}
|
7
|
-
<div class="px-4 lg:px-
|
7
|
+
<div class="px-4 lg:px-8">
|
8
8
|
<div class="container mb-6 mx-auto -my-3 lg:mb-12">
|
9
|
-
<ul class="flex">
|
9
|
+
<ul class="flex flex-wrap">
|
10
10
|
{% url 'admin:index' as link %}
|
11
11
|
{% trans 'Home' as name %}
|
12
12
|
{% include 'unfold/helpers/breadcrumb_item.html' with link=link name=name %}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<div {% if not is_popup %}id="submit-row"{% endif %} class="relative z-20 {% if not is_popup %} mt-20 lg:mt-8{% endif %}">
|
4
4
|
<div class="{% if not is_popup %}bottom-0 fixed left-0 right-0{% endif %}" {% if not is_popup %}x-bind:class="{'xl:left-0': !sidebarDesktopOpen, 'xl:left-72': sidebarDesktopOpen}"{% endif %}>
|
5
|
-
<div class="bg-white dark:bg-gray-900 {% if not is_popup %}border-t px-4 py-4 relative scrollable-top lg:px-
|
5
|
+
<div class="bg-white dark:bg-gray-900 {% if not is_popup %}border-t px-4 py-4 relative scrollable-top lg:px-8 dark:border-gray-800{% endif %}">
|
6
6
|
<div class="container flex flex-col-reverse gap-3 items-center mx-auto lg:flex-row-reverse">
|
7
7
|
{% if not revert_disabled %}
|
8
8
|
<button type="submit" class="bg-primary-600 block border border-transparent font-medium px-3 py-2 rounded-md text-sm text-white w-full lg:w-auto" name="_save" {{ onclick_attrib }}>
|