django-unfold 0.37.0__py3-none-any.whl → 0.39.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. django_unfold-0.39.0.dist-info/METADATA +70 -0
  2. {django_unfold-0.37.0.dist-info → django_unfold-0.39.0.dist-info}/RECORD +59 -57
  3. unfold/admin.py +4 -1
  4. unfold/contrib/filters/templates/unfold/filters/filters_date_range.html +1 -1
  5. unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html +1 -1
  6. unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html +1 -1
  7. unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html +1 -1
  8. unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html +4 -4
  9. unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html +6 -6
  10. unfold/contrib/guardian/templates/unfold/guardian/group_form.html +5 -5
  11. unfold/contrib/guardian/templates/unfold/guardian/user_form.html +5 -5
  12. unfold/contrib/import_export/templates/admin/import_export/change_form.html +1 -1
  13. unfold/contrib/import_export/templates/admin/import_export/import_errors.html +1 -1
  14. unfold/contrib/simple_history/templates/simple_history/object_history.html +1 -1
  15. unfold/contrib/simple_history/templates/simple_history/object_history_list.html +8 -8
  16. unfold/contrib/simple_history/templates/simple_history/submit_line.html +1 -1
  17. unfold/forms.py +5 -1
  18. unfold/settings.py +26 -1
  19. unfold/static/admin/js/admin/RelatedObjectLookups.js +295 -0
  20. unfold/static/unfold/css/styles.css +1 -1
  21. unfold/static/unfold/js/app.js +3 -1
  22. unfold/styles.css +1 -1
  23. unfold/templates/admin/app_list.html +2 -2
  24. unfold/templates/admin/change_form.html +8 -1
  25. unfold/templates/admin/change_list.html +1 -6
  26. unfold/templates/admin/change_list_results.html +2 -2
  27. unfold/templates/admin/delete_confirmation.html +5 -5
  28. unfold/templates/admin/delete_selected_confirmation.html +5 -5
  29. unfold/templates/admin/edit_inline/stacked.html +2 -2
  30. unfold/templates/admin/edit_inline/tabular.html +3 -3
  31. unfold/templates/admin/filter.html +1 -1
  32. unfold/templates/admin/includes/fieldset.html +1 -1
  33. unfold/templates/admin/includes/object_delete_summary.html +1 -1
  34. unfold/templates/admin/login.html +2 -2
  35. unfold/templates/admin/search_form.html +1 -1
  36. unfold/templates/auth/widgets/read_only_password_hash.html +2 -2
  37. unfold/templates/registration/logged_out.html +1 -1
  38. unfold/templates/unfold/change_list_filter.html +19 -3
  39. unfold/templates/unfold/components/button.html +1 -1
  40. unfold/templates/unfold/components/card.html +1 -1
  41. unfold/templates/unfold/components/navigation.html +1 -1
  42. unfold/templates/unfold/components/title.html +1 -1
  43. unfold/templates/unfold/helpers/actions_row.html +1 -1
  44. unfold/templates/unfold/helpers/app_list.html +7 -7
  45. unfold/templates/unfold/helpers/fieldsets_tabs.html +2 -2
  46. unfold/templates/unfold/helpers/form_label.html +1 -1
  47. unfold/templates/unfold/helpers/messages.html +1 -1
  48. unfold/templates/unfold/helpers/navigation.html +1 -1
  49. unfold/templates/unfold/helpers/search.html +1 -1
  50. unfold/templates/unfold/helpers/tab_action.html +1 -1
  51. unfold/templates/unfold/helpers/welcomemsg.html +3 -3
  52. unfold/templates/unfold/layouts/skeleton.html +1 -1
  53. unfold/templates/unfold/widgets/clearable_file_input.html +2 -2
  54. unfold/templates/unfold/widgets/clearable_file_input_small.html +1 -1
  55. unfold/templates/unfold/widgets/url.html +7 -0
  56. unfold/templatetags/unfold_list.py +0 -7
  57. unfold/widgets.py +26 -6
  58. django_unfold-0.37.0.dist-info/METADATA +0 -1455
  59. {django_unfold-0.37.0.dist-info → django_unfold-0.39.0.dist-info}/LICENSE.md +0 -0
  60. {django_unfold-0.37.0.dist-info → django_unfold-0.39.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,70 @@
1
+ Metadata-Version: 2.1
2
+ Name: django-unfold
3
+ Version: 0.39.0
4
+ Summary: Modern Django admin theme for seamless interface development
5
+ Home-page: https://unfoldadmin.com
6
+ License: MIT
7
+ Keywords: django,admin,tailwind,theme
8
+ Requires-Python: >=3.8
9
+ Classifier: Environment :: Web Environment
10
+ Classifier: Framework :: Django
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Requires-Dist: django (>=3.2)
22
+ Project-URL: Repository, https://github.com/unfoldadmin/django-unfold
23
+ Description-Content-Type: text/markdown
24
+
25
+ [![screenshot-light](https://github.com/unfoldadmin/django-unfold/assets/10785882/291e69c9-abdd-4f7e-a0d6-2af210a9013a#gh-light-mode-only)](https://github.com/unfoldadmin/django-unfold/assets/10785882/291e69c9-abdd-4f7e-a0d6-2af210a9013a#gh-light-mode-only)
26
+
27
+ [![screenshot-dark](https://github.com/unfoldadmin/django-unfold/assets/10785882/94a2e90f-924a-4aaf-b6d9-cb1592000c55#gh-dark-mode-only)](https://github.com/unfoldadmin/django-unfold/assets/10785882/94a2e90f-924a-4aaf-b6d9-cb1592000c55#gh-dark-mode-only)
28
+
29
+ ## Unfold Django Admin Theme
30
+
31
+ [![Build](https://img.shields.io/github/actions/workflow/status/unfoldadmin/django-unfold/release.yml?style=for-the-badge)](https://github.com/unfoldadmin/django-unfold/actions?query=workflow%3Arelease)
32
+ [![PyPI - Version](https://img.shields.io/pypi/v/django-unfold.svg?style=for-the-badge)](https://pypi.org/project/django-unfold/)
33
+ ![Code Style - Ruff](https://img.shields.io/badge/code%20style-ruff-30173D.svg?style=for-the-badge)
34
+ ![Pre Commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge)
35
+
36
+ Unfold is a theme for Django admin incorporating most common practices for building full-fledged admin areas. It is designed to work on top of default administration provided by Django.
37
+
38
+ - **Documentation:** full docs are available at [unfoldadmin.com/docs](https://unfoldadmin.com/docs?utm_medium=github&utm_source=unfold)
39
+ - **Unfold:** demo site is available at [unfoldadmin.com](https://unfoldadmin.com?utm_medium=github&utm_source=unfold)
40
+ - **Formula:** repository with demo implementation at [github.com/unfoldadmin/formula](https://github.com/unfoldadmin/formula)
41
+ - **Turbo:** Django & Next.js boilerplate implementing Unfold at [github.com/unfoldadmin/turbo](https://github.com/unfoldadmin/turbo)
42
+
43
+ ## Are you using Unfold and need a help?
44
+
45
+ Did you decide to start using Unfold but you don't have time to make the switch from native Django admin? [Get in touch with us](https://unfoldadmin.com/?utm_medium=github&utm_source=unfold) and let's supercharge development by using our know-how.
46
+
47
+ ## Features
48
+
49
+ - **Visual**: provides a new user interface based on Tailwind CSS framework
50
+ - **Sidebar:** simplifies definition of custom sidebar navigation with icons
51
+ - **Dark mode:** supports both light and dark mode versions
52
+ - **Configuration:** most of the basic options can be changed in settings.py
53
+ - **Dependencies:** completely based only on `django.contrib.admin`
54
+ - **Actions:** multiple ways how to define actions within different parts of admin
55
+ - **WYSIWYG:** built-in support for WYSIWYG (Trix)
56
+ - **Array widget:** built-in widget for `django.contrib.postgres.fields.ArrayField`
57
+ - **Filters:** custom dropdown, numeric, datetime, and text fields
58
+ - **Dashboard:** custom components for rapid dashboard development
59
+ - **Inline tabs:** group inlines into tab navigation in the change form
60
+ - **Model tabs:** define custom tab navigations for models
61
+ - **Fieldset tabs:** merge several fieldsets into tabs in the change form
62
+ - **Colors:** possibility to override the default color scheme
63
+ - **Changeform modes:** display fields in the change form in compressed mode
64
+ - **Third party packages:** default support for multiple popular applications
65
+ - **Environment label**: distinguish between environments by displaying a label
66
+ - **Nonrelated inlines**: displays nonrelated model as inline in changeform
67
+ - **Parallel admin**: support for default admin in parallel with Unfold. [Admin migration guide](https://unfoldadmin.com/blog/migrating-django-admin-unfold/?utm_medium=github&utm_source=unfold)
68
+ - **Favicons**: built-in support for configuring various site favicons
69
+ - **VS Code**: project configuration and development container is included
70
+
@@ -1,5 +1,5 @@
1
1
  unfold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- unfold/admin.py,sha256=nUAouLLyo57CE3EpOREHDMjOaj68P7MZO6KEPYlutYU,19587
2
+ unfold/admin.py,sha256=H7zKInqAGsGJbIrX0EC7GZKyXVjZ0olWBzvkIFlKpR8,19694
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
@@ -12,19 +12,19 @@ unfold/contrib/filters/static/unfold/filters/js/DateTimeShortcuts.js,sha256=jgFN
12
12
  unfold/contrib/filters/static/unfold/filters/js/admin-numeric-filter.js,sha256=nTkiiJk4Abn9d6KigxPSEsereFhFq-v5n_boiiY1eII,1668
13
13
  unfold/contrib/filters/static/unfold/filters/js/nouislider.min.js,sha256=aIEt5UlLNnEv4-HPyxcLqu9dTS7gXiMm35Mm0rFmQ0Q,26683
14
14
  unfold/contrib/filters/static/unfold/filters/js/wNumb.min.js,sha256=gayD3el5iizhy0DlsyKfZvfOfOZHDmb7BPvOcT97GSg,2236
15
- unfold/contrib/filters/templates/unfold/filters/filters_date_range.html,sha256=dZESgm60-nS469z4T9PZ8W8g98NqIcCHl2vWQgtk164,655
16
- unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html,sha256=dZESgm60-nS469z4T9PZ8W8g98NqIcCHl2vWQgtk164,655
15
+ unfold/contrib/filters/templates/unfold/filters/filters_date_range.html,sha256=gh_3lsncCJi2r76ZNkx--0FZEGChf4QZC3NHeYnwl64,678
16
+ unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html,sha256=gh_3lsncCJi2r76ZNkx--0FZEGChf4QZC3NHeYnwl64,678
17
17
  unfold/contrib/filters/templates/unfold/filters/filters_field.html,sha256=UTlSZlpg-gAc_a-EJLLF0NI_ofuSHQ2kMMoAs99nL2E,164
18
- unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html,sha256=n8WkxAd2qlmcLh_s5ToUul8LlbC3b8csP5gRwfAq8u8,633
19
- unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html,sha256=I89EqKtIrus5pUeQc6APoovwogYua2-cA5QmQ6hNpHc,570
20
- unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html,sha256=yChI6vo111DTHfDENQO1b2Wixed21oNpH9bbTbFLGqY,1675
18
+ unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html,sha256=sW6hOTFUkEO9NOKhlnA3NUGzL-GGHLHHYasC55-qzUI,656
19
+ unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html,sha256=qoo3kU_32CvJMFSPFLM-V6lPdo_JJNiJqr2XN1ziycQ,593
20
+ unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html,sha256=UYSredit27-zvIYwmm7k7umk4YJ9Ap2MEaV_-ckKfLM,1725
21
21
  unfold/contrib/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  unfold/contrib/forms/apps.py,sha256=Di0TMzVuRpVxLG-8Bjdq5ALCSf5r7u2xVhD0jU6H5Sc,132
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
26
  unfold/contrib/forms/templates/unfold/forms/array.html,sha256=GcfmREGCvLfXWSXM-t6F54uFgvqliFUeRZ2oeOIV6u0,1555
27
- unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html,sha256=6H6eaE_Po7OQRpl_YZj1sJJGZcENYzeQ4O8sg2pskMs,9700
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
30
30
  unfold/contrib/guardian/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -34,13 +34,13 @@ unfold/contrib/guardian/templates/admin/guardian/model/field.html,sha256=V9ZgmYi
34
34
  unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html,sha256=p7GmZOyDqj1urDAh9pyZhatnSpe-G6gXtQ_DpRK-J8k,1426
35
35
  unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html,sha256=mcm8nqyzz0-cIHQME8QLDNGZUmatwxorvnTAE82tHiU,2322
36
36
  unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html,sha256=mqASTrSSATOCJlG3G7qlWHQbLAMgLKhhKbn1klQAZAE,2320
37
- unfold/contrib/guardian/templates/unfold/guardian/group_form.html,sha256=erYUME-MViHHx3i2mVm3LpaOVNccNmep7PshPRU7tlg,3874
38
- unfold/contrib/guardian/templates/unfold/guardian/user_form.html,sha256=tKYI6cnaZ2cGmq6DnGvuAq0o52R6PEg3lxpH5AM30o4,3862
37
+ unfold/contrib/guardian/templates/unfold/guardian/group_form.html,sha256=LwBAUTk7PzFhokjdfxA93xb6U54FIGGwvcrZREwbcps,3925
38
+ unfold/contrib/guardian/templates/unfold/guardian/user_form.html,sha256=SJaMowt_92CXS59dKaWoXMOgXAS4rEOJPKlvnf5gOuY,3915
39
39
  unfold/contrib/import_export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  unfold/contrib/import_export/apps.py,sha256=SdJu6Qh90VqGWY19FSDhhpUqhTbaIYsJKny3zX5baHI,149
41
41
  unfold/contrib/import_export/forms.py,sha256=kh8psUoTObrRb2wtkYhvRu1D5QM02xWk4UNLQT5lQZA,2038
42
42
  unfold/contrib/import_export/templates/admin/import_export/base.html,sha256=loL2qcV-f8aAzkHss_I4IkwfgemVW2CjOu_aiBxdwX0,357
43
- unfold/contrib/import_export/templates/admin/import_export/change_form.html,sha256=-NZyyDmKC9rGOBBcuKBYZR9jRDVz1zJr5xXPfusxChQ,446
43
+ unfold/contrib/import_export/templates/admin/import_export/change_form.html,sha256=4KLXDLG1Wu3dGcvmB2nx075WYIExJdGxSrHWjMWeg4Q,455
44
44
  unfold/contrib/import_export/templates/admin/import_export/change_list_export.html,sha256=vZb2XVoJrDSjM1msiZqkQPMLQGjuqRHuLNdt11hmbQs,164
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
@@ -48,7 +48,7 @@ unfold/contrib/import_export/templates/admin/import_export/change_list_import_it
48
48
  unfold/contrib/import_export/templates/admin/import_export/export.html,sha256=NZ2bZ0yvskp_twIjX9LSROMmicXAU8dDXemxdII9_K0,3447
49
49
  unfold/contrib/import_export/templates/admin/import_export/import.html,sha256=HdOFIwyw3zc1nY24EfuYizKtT8A5W29InFPvfft5Sts,2125
50
50
  unfold/contrib/import_export/templates/admin/import_export/import_confirm.html,sha256=9DpqVW2TcrC8UrAawBP-6KIzKf0bZDNhpYIWduGTnVc,869
51
- unfold/contrib/import_export/templates/admin/import_export/import_errors.html,sha256=RRUAhrnn4xcYnEdrN2FUXtNQziQvlL-iSK0zLd4_6T0,1421
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
53
53
  unfold/contrib/import_export/templates/admin/import_export/import_preview.html,sha256=UZG5ep4BRbq3K9g3Yv0sNJdVRYmEi4luHi51IHNGNU8,2263
54
54
  unfold/contrib/import_export/templates/admin/import_export/import_validation.html,sha256=iOjwNDSQQHN6XVUZemYbsWI_wYeYEXTGc3T181Wg5NA,4635
@@ -60,19 +60,20 @@ unfold/contrib/inlines/checks.py,sha256=8sdyBcxw0erqQvp9sHlpGgy0rXfum-cd2eQE0rXF
60
60
  unfold/contrib/inlines/forms.py,sha256=s49xrIkQTbvSMsrP4DydXWkpP1v8NCUmQw_Bcoqf0i4,1322
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
- unfold/contrib/simple_history/templates/simple_history/object_history.html,sha256=ioBkepWc9-PQe4Kfy32RKOt_zf4fntz5XUfFeV3yQVw,771
63
+ unfold/contrib/simple_history/templates/simple_history/object_history.html,sha256=vX8bIubM54WtpnCCz6Ip2c1ryisaCveUHAakRMj_qE8,751
64
64
  unfold/contrib/simple_history/templates/simple_history/object_history_form.html,sha256=MOL3Tw3Nk3Rnq1koRV7yeCev4CP06_4xqAIOQk1M7FU,2290
65
- unfold/contrib/simple_history/templates/simple_history/object_history_list.html,sha256=f0RxTiPfC957uQzNfSkKoyMUzu8LRw4-MS6d3xZ2gew,6821
66
- unfold/contrib/simple_history/templates/simple_history/submit_line.html,sha256=9v7PfS8M6N0NccTEb_9QyTG28NgDBiIkjuBOfWGIQ18,1703
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=_otLz6Qs_tEnQIWQpKtTPll6joJaWeZb3ZoHdHXlXno,1712
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
- unfold/forms.py,sha256=8-IoFZLwUNJKTNdev_oJwdxm-_xekvrn_84IXKse4Q8,4100
72
- unfold/settings.py,sha256=uUl9WtHmYQF-BM_yCohGB5pGHjMWpZ0tUZOSki47gMA,1233
71
+ unfold/forms.py,sha256=xm1xSZJBTqnTTDQymkvfzHs7RaeANC4LzB86LNDA9hU,4218
72
+ unfold/settings.py,sha256=8rjtIipRX3IrkmsSy5OrbheGhjmkYvKxueihSRIM9c8,2111
73
73
  unfold/sites.py,sha256=yr66aXr1UYSZw9I9VRKpmkQxUtUP9336zs1GZJWJqis,13505
74
+ unfold/static/admin/js/admin/RelatedObjectLookups.js,sha256=alI0-yq7YPDJJJn-yg1ce79-Cv88yQDUrfaGqFZnsaY,9048
74
75
  unfold/static/unfold/css/simplebar.css,sha256=5LLaEM11pKi6JFCOLt4XKuZxTpT9rpdq_tNlaQytFlU,4647
75
- unfold/static/unfold/css/styles.css,sha256=IBJA6d74PS23BkZX2QOyD_SPLKQjmJCEt3fxS4h-e18,96651
76
+ unfold/static/unfold/css/styles.css,sha256=Qfovqaj0HIvTY7IjpOjq8B08_99KX4kXl-lRBiEmBF4,97177
76
77
  unfold/static/unfold/fonts/inter/Inter-Bold.woff2,sha256=O88EyjAeRPE_QEyKBKpK5wf2epUOEu8wwjj5bnhCZqE,46552
77
78
  unfold/static/unfold/fonts/inter/Inter-Medium.woff2,sha256=O88EyjAeRPE_QEyKBKpK5wf2epUOEu8wwjj5bnhCZqE,46552
78
79
  unfold/static/unfold/fonts/inter/Inter-Regular.woff2,sha256=O88EyjAeRPE_QEyKBKpK5wf2epUOEu8wwjj5bnhCZqE,46552
@@ -83,61 +84,61 @@ unfold/static/unfold/fonts/material-symbols/styles.css,sha256=U0oiGd2DS7LXnbuqgs
83
84
  unfold/static/unfold/js/alpine.anchor.js,sha256=2Jg9aUq749pjFynzr_H1NK3lf-nXrbHMtO9wvlWJyIQ,15524
84
85
  unfold/static/unfold/js/alpine.js,sha256=NY2a-7GrW--i9IBhowd25bzXcH9BCmBrqYX5i8OxwDQ,44659
85
86
  unfold/static/unfold/js/alpine.persist.js,sha256=jFBwr6faTqqhp3sVi4_VTxJ0FpaF9YGZN1ZGLl_5QYM,837
86
- unfold/static/unfold/js/app.js,sha256=wd6GCMh0D_bPYnyVRVI6UeLwlSWOTui-LkByCtQ_1O0,7409
87
+ unfold/static/unfold/js/app.js,sha256=VirG6nw5PPnKMxQqd3eGfmzWH_MaoutOTPxWHfMo7-M,7440
87
88
  unfold/static/unfold/js/chart.js,sha256=22W6cFERR-CElMOKRgMMicueMVP0Vf7FBEBYH8Z8tCk,200633
88
89
  unfold/static/unfold/js/htmx.js,sha256=XOLqvnZiyEx46EW9vaJTBUaaWg8CGVVfXJkVsUmJbpI,42820
89
90
  unfold/static/unfold/js/select2.init.js,sha256=SzpjSL1mD9tHedjSeXlmEwHjuuyqlnpilpSeEEKeYLE,265
90
91
  unfold/static/unfold/js/simplebar.js,sha256=t-uG1FAD6ZoiMeN--wac0XRS7SxoDVG6zvRnGuEp7X8,27176
91
- unfold/styles.css,sha256=egNdWhCzaGS5Y_tCiceIU6BTNn1MkrMMooX5zDv_r6I,18223
92
+ unfold/styles.css,sha256=7BtTH3fddTLCVDdMqohVzUXePMY_xoMaufLJbyOtY7M,18226
92
93
  unfold/templates/admin/actions.html,sha256=8GqELAxzywGyfQJiQeuhGIQUakdK_WeneILY06C7mEo,2746
93
94
  unfold/templates/admin/app_index.html,sha256=lVjMIFsspHQ09LGHKfdfg7TlqlL39AX5LbwoeoZjFhk,1335
94
- unfold/templates/admin/app_list.html,sha256=7R3tPEyKmnErCtkrD7dwTq1vA2CgW4Tut8KCrNi5kJA,2798
95
+ unfold/templates/admin/app_list.html,sha256=aXlMo2OONF-eoTBg5kdYip8vFsu8Rb88EQhXPZEL0w8,2766
95
96
  unfold/templates/admin/auth/user/add_form.html,sha256=L0ylU7BLEIoZc3nS4Rq6DA0H94HQ3aXFr-iwK0vp2Bs,482
96
97
  unfold/templates/admin/auth/user/change_password.html,sha256=-Wa9ml3yss-kDz0YQxCiwoxs91KQD8eetCt5l6xekWM,2892
97
98
  unfold/templates/admin/base.html,sha256=RptiEpgXZ6seYrPu-1Stoe8ECHpi9PjkJjFheGecYF0,2358
98
99
  unfold/templates/admin/base_site.html,sha256=FM8OOaXsQqJlYapeJvBznXCOt7poMiWrweTWcsMHzeI,365
99
- unfold/templates/admin/change_form.html,sha256=QwDlOhZZOspy5crZu_8e7CtM7FEUtfnQt3cINRbZBtQ,4620
100
+ unfold/templates/admin/change_form.html,sha256=2EKrHLNmKdg2cTmHW9N9Om6zpOxBDIzkOb6UoMKtr6U,4981
100
101
  unfold/templates/admin/change_form_object_tools.html,sha256=eyeH-i2HgEM0Yi-OJA2D1VnKJyC19A_my1IDGxxoP8Y,593
101
- unfold/templates/admin/change_list.html,sha256=aupzBR7mC9CFvVlONwi-bVS77fm_vvTw2llPCk2z-lo,5154
102
+ unfold/templates/admin/change_list.html,sha256=DzC236cq-B8uXnb6F4bzgcQFwMLI3uKOIHNyjVtCKA0,4977
102
103
  unfold/templates/admin/change_list_object_tools.html,sha256=cmMiT2nT20Ph5yfpj9aHPr76Z-JP4aSXp0o-Rnad28s,147
103
- unfold/templates/admin/change_list_results.html,sha256=6PbAraLQ910cI1-03IT-yEHRwNIS07xoNyaqPAqEW6M,5520
104
+ unfold/templates/admin/change_list_results.html,sha256=Nb-NbQYalqGJ9TRW4B1RZrS2ePhbyWtXi_K-tBn1DQs,5502
104
105
  unfold/templates/admin/date_hierarchy.html,sha256=BfUPbsLpHZVa40BHBahz1H9RSVuz36Jc3yrlobOiIpw,1306
105
- unfold/templates/admin/delete_confirmation.html,sha256=IUjfbrLxDrcstEFr-VchT_WPWLS_N1OtqXxXvZuY7p8,4981
106
- unfold/templates/admin/delete_selected_confirmation.html,sha256=nQpJ1_hBr-BgY-xgLU6vvj51_CEYyPq2Bd3iitkA-UQ,4764
107
- unfold/templates/admin/edit_inline/stacked.html,sha256=AA5GDVD8hP98gYA4nTWB33l4JpfoLnss32pH789Hlmk,7081
108
- unfold/templates/admin/edit_inline/tabular.html,sha256=MxGI96FXhIP4wMxJQHqsYGZ_wYJJVQjDsBqRgABtr48,14122
109
- unfold/templates/admin/filter.html,sha256=F2Gqb7GdGq41P-ZAp_JDKVKAbtaOjXx-Wb7oBZHV8NI,1617
110
- unfold/templates/admin/includes/fieldset.html,sha256=R9DCaOQsFkNUZBPSI9OuhBx0VYmNG-GQ88BTsHpZh94,952
111
- unfold/templates/admin/includes/object_delete_summary.html,sha256=G0MgYyjl7MPi2OM7j1ZbOMAD-sQ4eNZZB9E8iexD8rY,421
106
+ unfold/templates/admin/delete_confirmation.html,sha256=pg2Ei9ebjmsoM_GqaK0uasuGFYsoiFeoxsxGrOYk3kE,5082
107
+ unfold/templates/admin/delete_selected_confirmation.html,sha256=MRh1_fC5deThAb42kyoMu3t-o9OiF7UDAbRgun23KFQ,4865
108
+ unfold/templates/admin/edit_inline/stacked.html,sha256=K6sA05tN1r-6FyOePo15SF2WBbuOaA6_3FAoptWJCdk,7127
109
+ unfold/templates/admin/edit_inline/tabular.html,sha256=vch3ZQ7UVw6-6roX8EYbolk8ua98uIwNQx4-FjzE3tM,14195
110
+ unfold/templates/admin/filter.html,sha256=wgYuP_ZmTofljsavLe4t8djAZnXRfEmz5U40SI-2Hjc,1640
111
+ unfold/templates/admin/includes/fieldset.html,sha256=eyo5icIIrihKBLT7k3FCgoVhK55Lb78eIp7tIUNXLvU,975
112
+ unfold/templates/admin/includes/object_delete_summary.html,sha256=w_lPVnBrng0oqvFy6rzvr8c5bzdU8GpqvYUAvaXza0c,444
112
113
  unfold/templates/admin/index.html,sha256=pkGdKWdD3zzOvkRdELvdb15sleSpfl4eHPA14PAh7z0,684
113
- unfold/templates/admin/login.html,sha256=MI6LOulHm1929UAwPzKCWZRRkvdzbwA6MuTBbg7XGjg,4076
114
+ unfold/templates/admin/login.html,sha256=8qSiSCjZy1D76Z0HocQvDzSA6xfXjqsZoM9Bbg4Ebas,4108
114
115
  unfold/templates/admin/nav_sidebar.html,sha256=31g1dbGHe7m_8GXFrehLqWD84Nx7jEoeLhyNBZbaqRM,1163
115
116
  unfold/templates/admin/object_history.html,sha256=mRD6nbIVmnsz2OG6UsuXdI55bflY3Vs8zbIE9X-Oi74,4816
116
117
  unfold/templates/admin/pagination.html,sha256=KrwOM6gRizfpTMP59TESQaNGcQzkga2k02opl_7BxLo,1130
117
- unfold/templates/admin/search_form.html,sha256=4GruEPVG7s0nLi8x1n19tvaNrBobEN3mPb3R1tdIuVI,1200
118
+ unfold/templates/admin/search_form.html,sha256=NNTJ38yABrSBOet3ivkbzciYHd_I_mGHlgRvLHSL5ig,1219
118
119
  unfold/templates/admin/submit_line.html,sha256=6V9qtE9BecN905-YkI5ZOLY3ZYyb_mhN_p9Zkhv4h8Q,4248
119
- unfold/templates/auth/widgets/read_only_password_hash.html,sha256=I08wFPcDr0Gjrg64nlcKiB12Tz2g_nnJXemiy8tkoZg,785
120
- unfold/templates/registration/logged_out.html,sha256=4rjAazcxt8ZCqA5bConKRgAk4VrljNTksdtg7D_btrU,1028
120
+ unfold/templates/auth/widgets/read_only_password_hash.html,sha256=UK36u2lYyiY_oSWuzlH_54Kjc1RzgO3Y1VaqJPyXk_Y,754
121
+ unfold/templates/registration/logged_out.html,sha256=cg4YjMbVtuMdOJD3hkkJZntv0G8gnzQYkDpZJVRNM2g,995
121
122
  unfold/templates/registration/password_change_done.html,sha256=bTZHs1KsGcRgT6WI5exF4ANFEXatgI24rIeENxJZl6Q,1070
122
123
  unfold/templates/registration/password_change_form.html,sha256=zzmqFHfMExS7czgEBdEtetXk2Ae_7jzaID7CpE_xlgo,2225
123
- unfold/templates/unfold/change_list_filter.html,sha256=PIwyGKTU2OoFfeu-1xPXbgtqwQU9KXws5o6Sllt5EmY,2503
124
- unfold/templates/unfold/components/button.html,sha256=M_kn5fJPadvBfTUdN56-LMkouvfpUMga7orRJoVifgc,178
125
- unfold/templates/unfold/components/card.html,sha256=9Qpu74wRAmhW2fu3AJTVs9IexJjBf3tnLD8PNSi1ZKc,1071
124
+ unfold/templates/unfold/change_list_filter.html,sha256=9wP_sZF8uKmJhegPC3Z-7ZZXLwVIYDrjzzgTNxLuFbc,3344
125
+ unfold/templates/unfold/components/button.html,sha256=mVb_THznqpga1onh-TGr7B679I3zDazvXBdUVOMx7Og,220
126
+ unfold/templates/unfold/components/card.html,sha256=3DtjaeMvLNUBzbnnUn7zU15V2X_k2HBdxSV55S31IoA,1086
126
127
  unfold/templates/unfold/components/chart/bar.html,sha256=nDdDCUXvFd793OpNgNPQo0vBmvYngMsQyPHVTf1vfOw,297
127
128
  unfold/templates/unfold/components/chart/line.html,sha256=DHaZUFTlCs5cX7ioYdTzoN4ITHWNcEoNSUp7v3hlo_E,298
128
129
  unfold/templates/unfold/components/container.html,sha256=WBk1rGHnTsObi3pJCpL3dfFAUQ2abDmokU0Lee7R9CI,83
129
130
  unfold/templates/unfold/components/flex.html,sha256=_hBsQLJ6-7MfEfXNp5Wy-ykNtPMnnNg_io2IMGegn3s,134
130
131
  unfold/templates/unfold/components/icon.html,sha256=Qlhcf41FOwNVJ-nvA0RJ_Dn6JW6PUFXO6tOR3Xtf6e8,99
131
- unfold/templates/unfold/components/navigation.html,sha256=LzmcT8_SdmEp4XlqV0xjHhxxvfr_puG5-kAfzphw7YM,872
132
+ unfold/templates/unfold/components/navigation.html,sha256=KNDfB6oT_dgbD8Fy09oRt6Txw7ERHa9iv-TPyFEo2wg,892
132
133
  unfold/templates/unfold/components/progress.html,sha256=Dh8Q5rW5oVoRFrAxCcTbId3qI_SeA7V5V8KsmLgA8Bc,631
133
134
  unfold/templates/unfold/components/separator.html,sha256=IuQQu_kMgZY9D9w9-l6PHuVF0cX0bJuxcJHGXWswEhU,168
134
135
  unfold/templates/unfold/components/table.html,sha256=iC7mhLlPLRgCaV0sVjEkxIR7A4NLV2-rSHqEbmwpaHw,2028
135
136
  unfold/templates/unfold/components/text.html,sha256=-GjxvdiaBQIaNfPSzT6SSIwnc3R27FkSDQMoF3FDPso,102
136
- unfold/templates/unfold/components/title.html,sha256=FyIpxJa8fLDyLNyfcTkTxQDTyHNHOByfQIZ445KUdW8,131
137
+ unfold/templates/unfold/components/title.html,sha256=aMYSO30ybFYqPnqwlJVh2uNmcgnVrRycZkHTjJTjpX8,171
137
138
  unfold/templates/unfold/helpers/account_links.html,sha256=Vd80PCa91D5v3gJJKKuEJ7ycL80n54XJEo-039ELsRU,1879
138
- unfold/templates/unfold/helpers/actions_row.html,sha256=6h3ADU4gqj9Ujmu40lkyQcFvGSecDLXvVwOvmnK8pYo,1810
139
+ unfold/templates/unfold/helpers/actions_row.html,sha256=d80pwsZ80J1pvlBMDj9dOfC-ybZ6KV9bNGsv4Yny8ZQ,1819
139
140
  unfold/templates/unfold/helpers/add_link.html,sha256=CUFZ3quvp1JMAPmTkFRjpUXSy9GVXnIWNcRzv_gpq1A,810
140
- unfold/templates/unfold/helpers/app_list.html,sha256=fv2L7EnNcjOjRL1grCmV_gMDUnwjVr_kWIJTHCl_5fc,5511
141
+ unfold/templates/unfold/helpers/app_list.html,sha256=mhjpBMPh13VcMKn_vg_WyCnvt6c2CJBnIvEU2bjTaog,5456
141
142
  unfold/templates/unfold/helpers/app_list_default.html,sha256=T8xXI0LsEZCyttxXZGomGMkqEd8Wxj61RCYQ4YDxlHE,3908
142
143
  unfold/templates/unfold/helpers/attrs.html,sha256=Mwpj72kuwYj8hOT3J2T8qx6f1r_4xwwaS1slHA-82jI,166
143
144
  unfold/templates/unfold/helpers/boolean.html,sha256=6gXAMEJcNVB14je9uN32dxImXP3KMCiWPeKU5EAnawA,569
@@ -148,9 +149,9 @@ unfold/templates/unfold/helpers/field.html,sha256=Ds-zUHkdyxamfUCVNhxvtM0XoJg9OC
148
149
  unfold/templates/unfold/helpers/field_readonly.html,sha256=O0gHEW46OWt1oUUk0lZiyR-mztWv_7IH6GpKRm2wUw4,235
149
150
  unfold/templates/unfold/helpers/field_readonly_value.html,sha256=z-tAWjbXpRLRmbpZezxg5t9uylV2AVFLUIPDSsH8dcs,409
150
151
  unfold/templates/unfold/helpers/fieldset_row.html,sha256=u1T9Wx5msJz-eGpID0w7jY-6x3YVWp7W8XbH39rC-yo,4143
151
- unfold/templates/unfold/helpers/fieldsets_tabs.html,sha256=XArUTDYeb8WFURDOwl7N1Gv75CqADHjHBl3RIPFWTGs,1484
152
+ unfold/templates/unfold/helpers/fieldsets_tabs.html,sha256=GjFPlQgL-qv8bbxje5Zm1XL9v2_qFh-U3wcVvAOO5sE,1529
152
153
  unfold/templates/unfold/helpers/form_errors.html,sha256=EwerIJptSCWXvtAJ1IZKfEn98qlShBIGavsTThbklAs,266
153
- unfold/templates/unfold/helpers/form_label.html,sha256=SR4U6iK9w4oels6iGY_Da-yN4BbXQVN9zCDlBGGXcw8,310
154
+ unfold/templates/unfold/helpers/form_label.html,sha256=8LkMPJjb7PhIk0U5898XM4qWl1AkNoGNHgRr06UtJQI,325
154
155
  unfold/templates/unfold/helpers/header.html,sha256=-wEd5_REov-lU6Od_BaZbvfQCFBZMtRGB4rQwCBWcDc,1051
155
156
  unfold/templates/unfold/helpers/help_text.html,sha256=o-2_hyruIr_Xt0fo38aGgrpptPJFhddnVMPOVQOYhE4,113
156
157
  unfold/templates/unfold/helpers/history.html,sha256=tfpOWNDzo2k7orcb7avfFBWVFe8Z5yVxtMkshD2C42E,1927
@@ -158,25 +159,25 @@ unfold/templates/unfold/helpers/label.html,sha256=FfjLZNPGHrEzg5bG0eP3065NxlnrAR
158
159
  unfold/templates/unfold/helpers/messages/error.html,sha256=mlHVdfpG2ycsKIDBJB9CZs6fM4bMGkpmJvtxHjEApjE,558
159
160
  unfold/templates/unfold/helpers/messages/errornote.html,sha256=5ChxoVYkF4jI-cw72gVHh0CRxDnG9ME_U6UQOArax2k,404
160
161
  unfold/templates/unfold/helpers/messages/info.html,sha256=js95Hm3CzqpP6_XJpnA2vG7qt8eyHmJJJcDF0e5PLtQ,143
161
- unfold/templates/unfold/helpers/messages.html,sha256=GdbmiJSiHQ5L0VPj0i4vWS_ybp6oqMr_VzPiqE-5aZo,1004
162
- unfold/templates/unfold/helpers/navigation.html,sha256=Ia6xYkyKmyMKhIiQ3AzIjIA9PCWQTjtcvPTYrni3iQs,1227
162
+ unfold/templates/unfold/helpers/messages.html,sha256=UILjthMscQzFVgO6RKroQ6015grNuQySBH1y7Dn1QtQ,1023
163
+ unfold/templates/unfold/helpers/navigation.html,sha256=3-vUm7vrxfCk6y1CUKGyiYeQaYjV0qNJSO3AAYKBun4,1252
163
164
  unfold/templates/unfold/helpers/pagination_current_item.html,sha256=4cZ2KLVcP0Y7xuGyXgexDQ07r94cgM5Gnmtv11dkRPQ,69
164
165
  unfold/templates/unfold/helpers/pagination_ellipsis.html,sha256=Ar9Ntf2I_79mIVW5Hadwkn1Kx1Lj3d8eIXNXI1IIBfg,56
165
- unfold/templates/unfold/helpers/search.html,sha256=tCJLkG3qYDTOsgkaCer0y4cNo_ubw9fQXIt0w_72uCo,1588
166
+ unfold/templates/unfold/helpers/search.html,sha256=dIB1jGNgt_KahTKRFRKqNCERwutXG1BMnOgWm-BlX_Q,1607
166
167
  unfold/templates/unfold/helpers/search_results.html,sha256=liLy0JnKaDUKhVpsvPM6PKqqLO_rwuBf6whMo0QYMFg,637
167
168
  unfold/templates/unfold/helpers/site_icon.html,sha256=MWGECpFsRJcBJiLLxDbUUKTYLNR1wMn8gOlvUPN5ugo,788
168
169
  unfold/templates/unfold/helpers/site_logo.html,sha256=05tqXzHy--pluceRQ2jDUZCFX9DjPHdBqGaieUv9sXk,424
169
170
  unfold/templates/unfold/helpers/submit.html,sha256=oSzq85LRLhdOlbFtFZFhYm6ucT95u6LunTeSTDClszQ,206
170
- unfold/templates/unfold/helpers/tab_action.html,sha256=QRsJq6MIY7hlCOaTfScTcCfv0sUZs3iM2tMFe4vjpAA,370
171
+ unfold/templates/unfold/helpers/tab_action.html,sha256=Hq20p5yRWi-wPwkFVI5uekoAFI4IlkucYr7o1qjlrYw,325
171
172
  unfold/templates/unfold/helpers/tab_list.html,sha256=b84OUC12G1VpiL9jD8KWU2Xtvs5A8MZRxamjVTqGv2c,4497
172
173
  unfold/templates/unfold/helpers/theme_switch.html,sha256=21r_6v7rdpv1favvw5-5uwkRMUWwsAxcghdqDP38HYw,2212
173
174
  unfold/templates/unfold/helpers/userlinks.html,sha256=qWjtBt9Q_tU8a874ii0Qqg8t_d-SSYBTB_3QZfNlx9g,634
174
- unfold/templates/unfold/helpers/welcomemsg.html,sha256=mZ9qHGKrtCgv8t39s7Fz97kVRfNT9t0S9ODpbNCGH74,1221
175
+ unfold/templates/unfold/helpers/welcomemsg.html,sha256=RVIIwl9GXmdWauy1Q6vaiyPGGRpc3QWSZ07VLbb7mfM,1201
175
176
  unfold/templates/unfold/layouts/base.html,sha256=bAXZDbyiyxNiE-49mqr7pHUFhC2mHZQzIDUY-js_yZ0,379
176
177
  unfold/templates/unfold/layouts/base_simple.html,sha256=T37-ncKZBLNnOlsUQq90rGl3sLdRjFaxWCPG399pkbE,1179
177
- unfold/templates/unfold/layouts/skeleton.html,sha256=JHdlfYkm0MrxDmi0qCwbAz-iqai5XQelQR-jXSEWucg,4049
178
- unfold/templates/unfold/widgets/clearable_file_input.html,sha256=HNc93_OKFYWCc-TZhGfRlkN_ao9NRqUTGGZLFy-XnF0,2250
179
- unfold/templates/unfold/widgets/clearable_file_input_small.html,sha256=pVNnUcstzHiN2JdJON-W_QH5psc5SEUuJaRwRo_JOeY,2909
178
+ unfold/templates/unfold/layouts/skeleton.html,sha256=J8ch2DbrGLeKdggdtjpuVG1m7VwcJoLjfBKROsOESKI,4068
179
+ unfold/templates/unfold/widgets/clearable_file_input.html,sha256=MOJXfId4e5jr6wnQJlFl0lwo4s9wwOicg_hQehx9bh8,2152
180
+ unfold/templates/unfold/widgets/clearable_file_input_small.html,sha256=rChcaCdL34mDFjQUrpYOJdzey01EOMWm7_hsyclwLE8,2802
180
181
  unfold/templates/unfold/widgets/date.html,sha256=WXo2LG1v_gBZBSg-zocj7oujMKI0MWLYCIFfB04HMLQ,122
181
182
  unfold/templates/unfold/widgets/foreign_key_raw_id.html,sha256=Us8UqXRfRNWbQQn_9NMRO4ddUvt9Q53_NyFYUkdxY_g,1075
182
183
  unfold/templates/unfold/widgets/radio.html,sha256=3WcmclQNg7R_pRjEHL1dHkGjAzWlWNYnhHkAirC4nuA,646
@@ -189,14 +190,15 @@ unfold/templates/unfold/widgets/split_money.html,sha256=AFLUBmzGbY-RXgsfz7gaDxVR
189
190
  unfold/templates/unfold/widgets/textarea.html,sha256=-ZLDGrtASero7L-J3VvTNq_KjPAZh_kLVw0Ow3awqXM,144
190
191
  unfold/templates/unfold/widgets/textarea_expandable.html,sha256=4xIGWb20DuwiwumndByrAyh7xF-ReXKLulSpDImX_cs,459
191
192
  unfold/templates/unfold/widgets/time.html,sha256=WXo2LG1v_gBZBSg-zocj7oujMKI0MWLYCIFfB04HMLQ,122
193
+ unfold/templates/unfold/widgets/url.html,sha256=Q-SX1XERz76Gjhyaz-GialF6dEcW5yEmM7V-2ugQckE,262
192
194
  unfold/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
195
  unfold/templatetags/unfold.py,sha256=jWumX0e2KIyDxz_CmIfyOu7blILxVBqUPtGi1VutaBo,6884
194
- unfold/templatetags/unfold_list.py,sha256=Cli7Rd2Z-ijf5EsIZm7SAvcRgiHjBzV-d0JpAnVOXdY,14164
196
+ unfold/templatetags/unfold_list.py,sha256=ofVee2a5WtBVNFExzqxvn8UrSxmPzczR4gF5jTbu0zU,13986
195
197
  unfold/typing.py,sha256=1P8PWM2oeaceUJtA5j071RbKEBpHYaux441u7Hd6wv4,643
196
198
  unfold/utils.py,sha256=hs16AzAEtKb_tdTpLXuz3NqYhtP5JipSc_lkv5ULbbY,4921
197
199
  unfold/views.py,sha256=hQCyeeMa9kcJV1IZeeYqj8PGW7J4QWME8n-5n0UGmiU,1003
198
- unfold/widgets.py,sha256=6hQp13LmuhDJ41YxTG70SPJEg0agmHcmUhCtCUwI6SU,16369
199
- django_unfold-0.37.0.dist-info/LICENSE.md,sha256=Ltk_quRyyvV3J5v3brtOqmibeZSw2Hrb8bY1W3ya0Ik,1077
200
- django_unfold-0.37.0.dist-info/METADATA,sha256=Gh7DpJLEoonAjoBH_TcjoGpgvw10C7E5Y3Z2g1TWnoo,57888
201
- django_unfold-0.37.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
202
- django_unfold-0.37.0.dist-info/RECORD,,
200
+ unfold/widgets.py,sha256=HXihQ-dCvlN8uvHq1B1tzJlyBt4x800k4_5X14eiqKg,17086
201
+ django_unfold-0.39.0.dist-info/LICENSE.md,sha256=Ltk_quRyyvV3J5v3brtOqmibeZSw2Hrb8bY1W3ya0Ik,1077
202
+ django_unfold-0.39.0.dist-info/METADATA,sha256=_pgRxPBfnskJzqIiE0NyxPkeLH9R4vH9kgsfjehTcyU,4685
203
+ django_unfold-0.39.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
204
+ django_unfold-0.39.0.dist-info/RECORD,,
unfold/admin.py CHANGED
@@ -49,6 +49,7 @@ from .widgets import (
49
49
  UnfoldAdminSplitDateTimeWidget,
50
50
  UnfoldAdminTextareaWidget,
51
51
  UnfoldAdminTextInputWidget,
52
+ UnfoldAdminURLInputWidget,
52
53
  UnfoldAdminUUIDInputWidget,
53
54
  UnfoldBooleanSwitchWidget,
54
55
  UnfoldBooleanWidget,
@@ -79,7 +80,7 @@ FORMFIELD_OVERRIDES = {
79
80
  models.TimeField: {"widget": UnfoldAdminSingleTimeWidget},
80
81
  models.EmailField: {"widget": UnfoldAdminEmailInputWidget},
81
82
  models.CharField: {"widget": UnfoldAdminTextInputWidget},
82
- models.URLField: {"widget": UnfoldAdminTextInputWidget},
83
+ models.URLField: {"widget": UnfoldAdminURLInputWidget},
83
84
  models.GenericIPAddressField: {"widget": UnfoldAdminTextInputWidget},
84
85
  models.UUIDField: {"widget": UnfoldAdminUUIDInputWidget},
85
86
  models.TextField: {"widget": UnfoldAdminTextareaWidget},
@@ -234,6 +235,8 @@ class ModelAdmin(ModelAdminMixin, BaseModelAdmin):
234
235
  list_filter_submit = False
235
236
  list_fullwidth = False
236
237
  list_disable_select_all = False
238
+ change_form_before_template = None
239
+ change_form_after_template = None
237
240
  compressed_fields = False
238
241
  readonly_preprocess_fields = {}
239
242
  warn_unsaved_form = False
@@ -2,7 +2,7 @@
2
2
 
3
3
  {% with choices.0 as choice %}
4
4
  <div class="flex flex-col mb-6">
5
- <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
5
+ <h3 class="font-semibold mb-2 text-font-important-light dark:text-font-important-dark">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
6
6
 
7
7
  <div class="flex flex-col space-y-4">
8
8
  {% for field in choice.form %}
@@ -2,7 +2,7 @@
2
2
 
3
3
  {% with choices.0 as choice %}
4
4
  <div class="flex flex-col mb-6">
5
- <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
5
+ <h3 class="font-semibold mb-2 text-font-important-light dark:text-font-important-dark">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
6
6
 
7
7
  <div class="flex flex-col space-y-4">
8
8
  {% for field in choice.form %}
@@ -2,7 +2,7 @@
2
2
 
3
3
  {% with choices.0 as choice %}
4
4
  <div class="flex flex-col mb-6">
5
- <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
5
+ <h3 class="font-semibold mb-2 text-font-important-light dark:text-font-important-dark">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
6
6
 
7
7
  <div class="flex flex-row gap-4">
8
8
  {% for field in choice.form %}
@@ -2,7 +2,7 @@
2
2
 
3
3
  {% with choices.0 as choice %}
4
4
  <div class="flex flex-col mb-6">
5
- <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
5
+ <h3 class="font-semibold mb-2 text-font-important-light dark:text-font-important-dark">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
6
6
 
7
7
  {% for field in choice.form %}
8
8
  <div class="flex flex-row flex-wrap group relative{% if field.errors %} errors{% endif %}">
@@ -3,17 +3,17 @@
3
3
 
4
4
  {% with choices.0 as choice %}
5
5
  <div class="admin-numeric-filter-wrapper mb-6">
6
- <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">
6
+ <h3 class="font-semibold mb-2 text-font-important-light dark:text-font-important-dark">
7
7
  {% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}
8
8
  </h3>
9
9
 
10
10
  {% if choice.min is not None and choice.max is not None and choice.step %}
11
11
  <div class="admin-numeric-filter-slider-tooltips">
12
- <span class="admin-numeric-filter-slider-tooltip-from border cursor-not-allowed flex flex-grow flex-row items-center mr-auto rounded-md shadow-sm px-3 py-2 w-full dark:bg-gray-900 dark:border-gray-700 dark:text-gray-300">
12
+ <span class="admin-numeric-filter-slider-tooltip-from border cursor-not-allowed flex flex-grow flex-row items-center mr-auto rounded-md shadow-sm px-3 py-2 w-full dark:bg-gray-900 dark:border-gray-700 dark:text-font-default-dark">
13
13
  {{ choice.value_from }}
14
14
  </span>
15
15
 
16
- <span class="admin-numeric-filter-slider-tooltip-to border cursor-not-allowed flex flex-grow flex-row items-center rounded-md shadow-sm px-3 py-2 w-full dark:bg-gray-900 dark:border-gray-700 dark:text-gray-300">
16
+ <span class="admin-numeric-filter-slider-tooltip-to border cursor-not-allowed flex flex-grow flex-row items-center rounded-md shadow-sm px-3 py-2 w-full dark:bg-gray-900 dark:border-gray-700 dark:text-font-default-dark">
17
17
  {{ choice.value_to }}
18
18
  </span>
19
19
  </div>
@@ -25,7 +25,7 @@
25
25
  {{ choice.form.as_p }}
26
26
  </div>
27
27
  {% else %}
28
- <div class="admin-numeric-filter-slider-error dark:text-gray-300">
28
+ <div class="admin-numeric-filter-slider-error dark:text-font-default-dark">
29
29
  <p>
30
30
  {% trans 'Not enough data.' %}
31
31
  </p>
@@ -2,7 +2,7 @@
2
2
 
3
3
  <template id="trix-toolbar">
4
4
  <div class="bg-gray-50 flex flex-row flex-wrap border group-[.errors]:border-t-red-600 gap-4 group-[.errors]:border-x-red-600 px-3 py-2 relative rounded-t-md shadow-sm w-full dark:bg-white/[.02] dark:border-gray-700 dark:group-[.errors]:border-t-red-500 dark:group-[.errors]:border-x-red-500">
5
- <div data-trix-button-group="text-tools" class="bg-white border border-md flex flex-row rounded-md shadow-sm shrink-0 dark:bg-gray-900 dark:border-gray-700 dark:text-gray-300">
5
+ <div data-trix-button-group="text-tools" class="bg-white border border-md flex flex-row rounded-md shadow-sm shrink-0 dark:bg-gray-900 dark:border-gray-700 dark:text-font-default-dark">
6
6
  {% spaceless %}
7
7
  <button type="button" data-trix-attribute="p" data-trix-key="p" title="{% trans "Paragraph" %}" tabindex="-1" class="border-r cursor-pointer flex items-center h-8 justify-center transition-colors w-8 hover:text-primary-600 dark:border-gray-700">
8
8
  <span class="material-symbols-outlined">format_paragraph</span>
@@ -30,7 +30,7 @@
30
30
  {% endspaceless %}
31
31
  </div>
32
32
 
33
- <div data-trix-button-group="block-headings" class="bg-white border border-md flex flex-row rounded-md shadow-sm dark:bg-gray-900 dark:border-gray-700 dark:text-gray-300">
33
+ <div data-trix-button-group="block-headings" class="bg-white border border-md flex flex-row rounded-md shadow-sm dark:bg-gray-900 dark:border-gray-700 dark:text-font-default-dark">
34
34
  {% spaceless %}
35
35
  <button type="button" data-trix-attribute="heading1" title="{% trans "Heading" %} 1" tabindex="-1" class="border-r cursor-pointer flex items-center h-8 justify-center transition-colors w-8 hover:text-primary-600 dark:border-gray-700">
36
36
  <span class="material-symbols-outlined">format_h1</span>
@@ -50,7 +50,7 @@
50
50
  {% endspaceless %}
51
51
  </div>
52
52
 
53
- <div data-trix-button-group="block-tools" class="bg-white border border-md flex flex-row rounded-md shadow-sm dark:bg-gray-900 dark:border-gray-700 dark:text-gray-300">
53
+ <div data-trix-button-group="block-tools" class="bg-white border border-md flex flex-row rounded-md shadow-sm dark:bg-gray-900 dark:border-gray-700 dark:text-font-default-dark">
54
54
  {% spaceless %}
55
55
  <button type="button" data-trix-attribute="quote" title="{% trans "Quote" %}" tabindex="-1" class="border-r cursor-pointer flex items-center h-8 justify-center transition-colors w-8 hover:text-primary-600 dark:border-gray-700">
56
56
  <span class="material-symbols-outlined">format_quote</span>
@@ -79,7 +79,7 @@
79
79
  </div>
80
80
 
81
81
  <div class="lg:ml-auto">
82
- <div data-trix-button-group="history-tools" class="bg-white border border-md flex flex-row rounded-md shadow-sm dark:bg-gray-900 dark:border-gray-700 dark:text-gray-300">
82
+ <div data-trix-button-group="history-tools" class="bg-white border border-md flex flex-row rounded-md shadow-sm dark:bg-gray-900 dark:border-gray-700 dark:text-font-default-dark">
83
83
  <button type="button" data-trix-action="undo" data-trix-key="z" title="{% trans "Undo" %}" tabindex="-1" class="border-r cursor-pointer flex items-center h-8 justify-center transition-colors w-8 hover:text-primary-600 dark:border-gray-700">
84
84
  <span class="material-symbols-outlined">undo</span>
85
85
  </button>
@@ -92,9 +92,9 @@
92
92
  <div data-trix-dialogs>
93
93
  <div class="absolute bg-white border-b -bottom-px left-0 px-4 py-2 right-0 shadow-sm translate-y-full dark:bg-gray-900 dark:border-gray-700" data-trix-dialog="href" data-trix-dialog-attribute="href">
94
94
  <div class="flex flex-row">
95
- <input type="url" name="href" class="border bg-white font-medium px-3 rounded-md shadow-sm text-gray-500 text-sm focus:ring focus:ring-primary-300 focus:border-primary-600 focus:outline-none group-[.errors]:border-red-600 group-[.errors]:focus:ring-red-200 dark:bg-gray-900 dark:border-gray-700 dark:text-gray-300 dark:focus:ring-primary-600/30 dark:group-[.errors]:border-red-500 dark:group-[.errors]:focus:ring-red-600/40" placeholder="{% trans "Enter an URL" %}" required data-trix-input>
95
+ <input type="url" name="href" class="border bg-white font-medium px-3 rounded-md shadow-sm text-gray-500 text-sm focus:ring focus:ring-primary-300 focus:border-primary-600 focus:outline-none group-[.errors]:border-red-600 group-[.errors]:focus:ring-red-200 dark:bg-gray-900 dark:border-gray-700 dark:text-font-default-dark dark:focus:ring-primary-600/30 dark:group-[.errors]:border-red-500 dark:group-[.errors]:focus:ring-red-600/40" placeholder="{% trans "Enter an URL" %}" required data-trix-input>
96
96
 
97
- <div class="bg-white border border-md flex flex-row ml-4 rounded-md shadow-sm dark:bg-gray-900 dark:border-gray-700 dark:text-gray-300">
97
+ <div class="bg-white border border-md flex flex-row ml-4 rounded-md shadow-sm dark:bg-gray-900 dark:border-gray-700 dark:text-font-default-dark">
98
98
  <button type="button" data-trix-method="setAttribute" title="{% trans "Link" %}" class="border-r cursor-pointer flex items-center h-8 justify-center text-gray-400 transition-colors w-8 hover:text-primary-600 dark:border-gray-700">
99
99
  <span class="material-symbols-outlined">link</span>
100
100
  </button>
@@ -3,25 +3,25 @@
3
3
  <form method="post">
4
4
  {% csrf_token %}
5
5
 
6
- <h2 class="font-semibold mb-3 text-gray-900 dark:text-gray-100">
6
+ <h2 class="font-semibold mb-3 text-font-important-light dark:text-font-important-dark">
7
7
  {% trans "Group permissions" %}
8
8
  </h2>
9
9
 
10
10
  {% if groups_perms.items %}
11
11
  <table id="group-permissions" class="border-gray-200 border-spacing-none border-separate mb-6 w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
12
- <thead class="hidden lg:table-header-group text-gray-900 dark:text-gray-100">
12
+ <thead class="hidden lg:table-header-group text-font-important-light dark:text-font-important-dark">
13
13
  <tr>
14
- <th class="align-middle font-medium px-3 py-2 text-left">
14
+ <th class="align-middle font-semibold px-3 py-2 text-left">
15
15
  {% trans "Group" %}
16
16
  </th>
17
17
 
18
18
  {% for perm in model_perms %}
19
- <th class="align-middle font-medium px-3 py-2 text-left">
19
+ <th class="align-middle font-semibold px-3 py-2 text-left">
20
20
  {{ perm.name }}
21
21
  </th>
22
22
  {% endfor %}
23
23
 
24
- <th class="align-middle font-medium px-3 py-2 text-right">
24
+ <th class="align-middle font-semibold px-3 py-2 text-right">
25
25
  {% trans "Action" %}
26
26
  </th>
27
27
  </tr>
@@ -3,25 +3,25 @@
3
3
  <form method="post">
4
4
  {% csrf_token %}
5
5
 
6
- <h2 class="font-medium mb-3 text-gray-700 dark:text-gray-200">
6
+ <h2 class="font-semibold mb-3 text-font-important-light dark:text-font-important-dark">
7
7
  {% trans "User permissions" %}
8
8
  </h2>
9
9
 
10
10
  {% if users_perms.items %}
11
11
  <table id="user-permissions" class="border-gray-200 border-spacing-none border-separate mb-6 w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
12
- <thead class="hidden lg:table-header-group text-gray-900 dark:text-gray-100">
12
+ <thead class="hidden lg:table-header-group text-font-important-light dark:text-font-important-dark">
13
13
  <tr>
14
- <th class="align-middle font-medium px-3 py-2 text-left">
14
+ <th class="align-middle font-semibold px-3 py-2 text-left">
15
15
  {% trans "User" %}
16
16
  </th>
17
17
 
18
18
  {% for perm in model_perms %}
19
- <th class="align-middle font-medium px-3 py-2 text-left">
19
+ <th class="align-middle font-semibold px-3 py-2 text-left">
20
20
  {{ perm.name }}
21
21
  </th>
22
22
  {% endfor %}
23
23
 
24
- <th class="align-middle font-medium px-3 py-2 text-right">
24
+ <th class="align-middle font-semibold px-3 py-2 text-right">
25
25
  {% trans "Action" %}
26
26
  </th>
27
27
  </tr>
@@ -5,6 +5,6 @@
5
5
  {{ block.super }}
6
6
 
7
7
  {% if show_change_form_export %}
8
- <input type="submit" value="{% translate 'Export' %}" name="_export-item" class="bg-white text-gray-500 border cursor-pointer flex font-medium items-center px-3 py-2 mr-3 rounded-md shadow-sm text-sm dark:bg-gray-900 dark:border dark:border-gray-700 dark:text-gray-300">
8
+ <input type="submit" value="{% translate 'Export' %}" name="_export-item" class="bg-white text-gray-500 border cursor-pointer flex font-medium items-center px-3 py-2 mr-3 rounded-md shadow-sm text-sm dark:bg-gray-900 dark:border dark:border-gray-700 dark:text-font-default-dark">
9
9
  {% endif %}
10
10
  {% endblock %}
@@ -26,7 +26,7 @@
26
26
  </div>
27
27
  </div>
28
28
 
29
- <div class="block border leading-relaxed mb-4 rounded p-4 traceback dark:border-gray-800 dark:text-gray-300 " x-show="open">
29
+ <div class="block border leading-relaxed mb-4 rounded p-4 traceback dark:border-gray-800 dark:text-font-default-dark " x-show="open">
30
30
  {{ error.traceback|linebreaks }}
31
31
  </div>
32
32
  </li>
@@ -4,7 +4,7 @@
4
4
 
5
5
  {% block content %}
6
6
  {% if not revert_disabled %}
7
- <p class="px-3 py-3 rounded-md text-sm last:mb-8 er-amber-600/10 bg-blue-50 mb-8 text-blue-500 dark:bg-blue-500/20 dark:border-blue-500/10">
7
+ <p class="px-3 py-3 rounded-md text-sm last:mb-8 mb-8 bg-blue-100 text-blue-700 dark:bg-blue-500/20 dark:text-blue-400">
8
8
  {% blocktrans %}Choose a date from the list below to revert to a previous version of this object.{% endblocktrans %}
9
9
  </p>
10
10
  {% endif %}