django-unfold 0.60.0__py3-none-any.whl → 0.61.0__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_unfold-0.60.0.dist-info → django_unfold-0.61.0.dist-info}/METADATA +15 -6
- {django_unfold-0.60.0.dist-info → django_unfold-0.61.0.dist-info}/RECORD +40 -37
- unfold/admin.py +1 -1
- unfold/contrib/import_export/templates/admin/import_export/change_list_import.html +5 -0
- unfold/contrib/simple_history/templates/simple_history/submit_line.html +16 -18
- unfold/forms.py +2 -2
- unfold/mixins/base_model_admin.py +7 -2
- unfold/sites.py +15 -2
- unfold/static/unfold/css/styles.css +1 -1
- unfold/static/unfold/js/app.js +61 -0
- unfold/styles.css +3 -5
- unfold/templates/admin/auth/user/add_form.html +1 -5
- unfold/templates/admin/change_form.html +3 -1
- unfold/templates/admin/change_list.html +4 -2
- unfold/templates/admin/change_list_results.html +3 -3
- unfold/templates/admin/edit_inline/stacked.html +8 -2
- unfold/templates/admin/edit_inline/tabular.html +2 -2
- unfold/templates/admin/includes/fieldset.html +9 -3
- unfold/templates/admin/search_form.html +14 -5
- unfold/templates/admin/submit_line.html +1 -1
- unfold/templates/unfold/components/card.html +4 -4
- unfold/templates/unfold/helpers/add_link.html +3 -1
- unfold/templates/unfold/helpers/fieldsets_tabs.html +3 -3
- unfold/templates/unfold/helpers/help_text.html +1 -1
- unfold/templates/unfold/helpers/messages.html +4 -4
- unfold/templates/unfold/helpers/pagination.html +1 -1
- unfold/templates/unfold/helpers/popup_header.html +27 -0
- unfold/templates/unfold/helpers/search.html +16 -12
- unfold/templates/unfold/helpers/search_results.html +10 -9
- unfold/templates/unfold/helpers/shortcut.html +3 -0
- unfold/templates/unfold/helpers/site_branding.html +2 -2
- unfold/templates/unfold/helpers/tab_action.html +4 -3
- unfold/templates/unfold_crispy/field.html +12 -10
- unfold/templates/unfold_crispy/layout/checkbox.html +20 -4
- unfold/templates/unfold_crispy/layout/fieldset.html +3 -3
- unfold/templatetags/unfold.py +3 -3
- unfold/templatetags/unfold_list.py +4 -1
- unfold/widgets.py +2 -1
- {django_unfold-0.60.0.dist-info → django_unfold-0.61.0.dist-info}/LICENSE.md +0 -0
- {django_unfold-0.60.0.dist-info → django_unfold-0.61.0.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: django-unfold
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.61.0
|
4
4
|
Summary: Modern Django admin theme for seamless interface development
|
5
5
|
License: MIT
|
6
6
|
Keywords: django,admin,tailwind,theme
|
@@ -24,7 +24,7 @@ Description-Content-Type: text/markdown
|
|
24
24
|
|
25
25
|

|
26
26
|
|
27
|
-
## Unfold Django Admin Theme
|
27
|
+
## Unfold - Django Admin Theme
|
28
28
|
|
29
29
|
[](https://pypi.org/project/django-unfold/)
|
30
30
|
[](https://discord.gg/9sQj9MEbNz)
|
@@ -40,13 +40,22 @@ Transform your Django admin into a powerful, modern administrative interface wit
|
|
40
40
|
- **Turbo:** A Django & Next.js boilerplate implementing Unfold is available at [github.com/unfoldadmin/turbo](https://github.com/unfoldadmin/turbo?utm_medium=github&utm_source=unfold).
|
41
41
|
- **Discord:** Join our Unfold community on [Discord](https://discord.gg/9sQj9MEbNz).
|
42
42
|
|
43
|
-
##
|
43
|
+
## Profesional tools & services
|
44
44
|
|
45
|
-
|
45
|
+
Looking for professional help with your Django or Unfold project? We offer a range of tools and services to support your development process:
|
46
46
|
|
47
|
-
|
47
|
+
### Consulting services
|
48
48
|
|
49
|
-
|
49
|
+
Professional consulting services for Django applications — from architecture and performance optimization to feature development and Unfold integration.
|
50
|
+
Ideal for teams looking to scale, modernize, or customize their Django projects with expert support. Learn more at [unfoldadmin.com/consulting](https://unfoldadmin.com/consulting/?utm_medium=github&utm_source=unfold).
|
51
|
+
|
52
|
+
### Support package
|
53
|
+
|
54
|
+
If you need assistance with integrating or customizing Unfold, support packages are available. They include live 1:1 calls, implementation review, and ongoing Discord-based support — fixed price, no ongoing commitment. Learn more at [unfoldadmin.com/support](https://unfoldadmin.com/support/?utm_medium=github&utm_source=unfold).
|
55
|
+
|
56
|
+
### Unfold Studio
|
57
|
+
|
58
|
+
Unfold Studio lets you visually customize your Django admin without writing code — update colors, logos, sidebar, and interface styles to match your brand in minutes. Give your admin a polished, professional look that feels truly yours. Available at [unfoldadmin.com/studio](https://unfoldadmin.com/studio).
|
50
59
|
|
51
60
|
## Fresh Features & Enhancements
|
52
61
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
unfold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
unfold/admin.py,sha256=
|
2
|
+
unfold/admin.py,sha256=B-MAEjAJuDSzGse2POA6fiLklwcDb9oVEsWR7Zn4z5Q,7455
|
3
3
|
unfold/apps.py,sha256=SlBXPYrUd2uXn67qFbRvbXSUk3XFWrF4-5WELgDCvho,381
|
4
4
|
unfold/checks.py,sha256=e5HEhbXRcu3FwZDT_d-IbimeVpjJ6jgCUPXWvsUjEw0,2601
|
5
5
|
unfold/components.py,sha256=vqkQzseYUvLXDohmTVAlbKopALjyX4WA9yglvdfhqu4,1283
|
@@ -56,6 +56,7 @@ unfold/contrib/import_export/templates/admin/import_export/base.html,sha256=y-J1
|
|
56
56
|
unfold/contrib/import_export/templates/admin/import_export/change_form.html,sha256=TYiMBf8bSJoMiSrHGAa-OwyheVyNG3WyWFNeH2tmZjc,460
|
57
57
|
unfold/contrib/import_export/templates/admin/import_export/change_list_export.html,sha256=vZb2XVoJrDSjM1msiZqkQPMLQGjuqRHuLNdt11hmbQs,164
|
58
58
|
unfold/contrib/import_export/templates/admin/import_export/change_list_export_item.html,sha256=pTDeqPKOlCPKH2dxMIfPnWuc2wVDzB7AzL73WbxSnRY,257
|
59
|
+
unfold/contrib/import_export/templates/admin/import_export/change_list_import.html,sha256=QTbp4m-XKKWFbnBotslw1Dw7O1fUWnFTDtAIymzOMDw,164
|
59
60
|
unfold/contrib/import_export/templates/admin/import_export/change_list_import_export.html,sha256=JdKd6P2Ot9Ou4yg4CywTauuE1UiTz_mRvDwlx3vj3LI,229
|
60
61
|
unfold/contrib/import_export/templates/admin/import_export/change_list_import_item.html,sha256=XUuRxnsx9YQbKvW-E_JGl_ha7kpTSGSoRefOTTizuX0,233
|
61
62
|
unfold/contrib/import_export/templates/admin/import_export/export.html,sha256=uzv2LuTIV7MZKcg7L_I8EmI0weEpJBL_omXmGSHtyH0,3463
|
@@ -79,27 +80,27 @@ unfold/contrib/simple_history/apps.py,sha256=eF_KVYb60CAnGgWk2Z1YKYGfgA3TJBMr229
|
|
79
80
|
unfold/contrib/simple_history/templates/simple_history/object_history.html,sha256=unZQE70be7cK6v0YPlITFeaosmiLt3kiei-pmmCjBg0,1711
|
80
81
|
unfold/contrib/simple_history/templates/simple_history/object_history_form.html,sha256=1wsz8KTmjsgAthFS2myfcS3QvyeL0-qT8s2w7JINVhQ,2256
|
81
82
|
unfold/contrib/simple_history/templates/simple_history/object_history_list.html,sha256=PWtjuAcxciAI001qIrXLvbUxzCFl_SDAaHA5FhR16Z8,6858
|
82
|
-
unfold/contrib/simple_history/templates/simple_history/submit_line.html,sha256=
|
83
|
+
unfold/contrib/simple_history/templates/simple_history/submit_line.html,sha256=PEoPmWcWiiBIMs6XtXcoXswDtxp3FgntR3maieLDt4Y,1618
|
83
84
|
unfold/dataclasses.py,sha256=a-9INnkCAIcnMgoffTcB1rxWCJH33AjhMCWIGWnjWbI,719
|
84
85
|
unfold/decorators.py,sha256=jPiYFy1p0WGFn68VZhAZkYCPDF7argb9SDFaH6aemHk,4922
|
85
86
|
unfold/enums.py,sha256=9sTfyEycMWeoGPBa-ft6ZhQGnW1vkFg108RMBVf9nko,187
|
86
87
|
unfold/exceptions.py,sha256=gcCj1ox61E137bk_0Cqy4YC3SttdPgB-fiJUqpmyHSE,43
|
87
88
|
unfold/fields.py,sha256=h7mpRlsoFu6xQrCbehrjsBpyxFsXc-lMDzEI1JREoJk,7304
|
88
|
-
unfold/forms.py,sha256=
|
89
|
+
unfold/forms.py,sha256=0u4TFw7oQ96S7njzJ2G79Qzt1X-4P4px-kfMgjVt49o,7762
|
89
90
|
unfold/layout.py,sha256=Q-dFTA6UlvvPCA4PsGyTkHQmBLO7PL56xBfZi-bdt0c,1459
|
90
91
|
unfold/mixins/__init__.py,sha256=YlhoDs9Y_DXQ8Ejr3enxuHMS1-Ij9fwukxNwpeOS4Co,190
|
91
92
|
unfold/mixins/action_model_admin.py,sha256=9Zt4FLrQWEQSO2vrpwjzpFo_I3_yE000uEwHndsW5kg,12365
|
92
|
-
unfold/mixins/base_model_admin.py,sha256=
|
93
|
+
unfold/mixins/base_model_admin.py,sha256=PyTZSxF6tIcs20VlMCX08tFnB0ORU0VXvgcPArkiE68,4796
|
93
94
|
unfold/overrides.py,sha256=ERVY9boZiXgjDYcTEZcIp7KWoeBZ45VM_zN31yAOjyQ,2922
|
94
95
|
unfold/paginator.py,sha256=bZiEY-1kqZy_6CYGs9fHo6WntMgpnFCH-LJPoXkEESk,533
|
95
96
|
unfold/sections.py,sha256=Lcg3xCZ76fqjm4vD4x7YdE5VsbTKluL-sX5QTEBlHxA,2379
|
96
97
|
unfold/settings.py,sha256=DE3hComMaWtty8o-LqdgGGcoku3mevRWJah4NH1k5B4,2879
|
97
|
-
unfold/sites.py,sha256=
|
98
|
+
unfold/sites.py,sha256=GPeMbBA4ckhacUOPW9PXrzQrOttU7_91zwReaKJdZgc,17616
|
98
99
|
unfold/static/admin/js/admin/RelatedObjectLookups.js,sha256=ubKKhWmX_QborwPnaLHuQshTwQw6tK1pAViWdKIjw4E,9222
|
99
100
|
unfold/static/admin/js/inlines.js,sha256=zcYwLGI_6RHg-gucDbbhp43RRoZd3so8bPk841KFaIE,15573
|
100
101
|
unfold/static/unfold/css/simplebar/LICENSE,sha256=okNJf6UFl2NrEiC4iqORNBa16IKgUgV88acdcl9FbtY,1081
|
101
102
|
unfold/static/unfold/css/simplebar/simplebar.css,sha256=5LLaEM11pKi6JFCOLt4XKuZxTpT9rpdq_tNlaQytFlU,4647
|
102
|
-
unfold/static/unfold/css/styles.css,sha256=
|
103
|
+
unfold/static/unfold/css/styles.css,sha256=3Ch1P8TjpORzdOWrm41Gk5ljm-S2XImJkHOLmtMFaaE,158843
|
103
104
|
unfold/static/unfold/fonts/inter/Inter-Bold.woff2,sha256=-oiBJ7baAVtlVp8DUfO1w5GtkokElR8cIOn4RiqNleo,114840
|
104
105
|
unfold/static/unfold/fonts/inter/Inter-Medium.woff2,sha256=D_PpRhThST61VjFP0keubEqFp3g7TMhr5TmUDPg_Kkg,114348
|
105
106
|
unfold/static/unfold/fonts/inter/Inter-Regular.woff2,sha256=4G9rG8VTqupORmgCPtCrChRxKcMQf1Ebx9A9NhsK4IU,111268
|
@@ -115,7 +116,7 @@ unfold/static/unfold/js/alpine/alpine.js,sha256=PtHu0lJIiSHfZeNj1nFd6wTX-Squ255S
|
|
115
116
|
unfold/static/unfold/js/alpine/alpine.persist.js,sha256=jFBwr6faTqqhp3sVi4_VTxJ0FpaF9YGZN1ZGLl_5QYM,837
|
116
117
|
unfold/static/unfold/js/alpine/alpine.resize.js,sha256=mXR2L6neT584cfNLY5_imDq5DKjW1noXys7fhb1yxY4,703
|
117
118
|
unfold/static/unfold/js/alpine/alpine.sort.js,sha256=q6LxgConwu8M8R03mZSBcsKwJv6fF7oomP8sqLxVQ0w,37891
|
118
|
-
unfold/static/unfold/js/app.js,sha256=
|
119
|
+
unfold/static/unfold/js/app.js,sha256=UfVvyLqwoUUYci7dRbFXz1e4q68WTwz3M3K80JAQxfE,9414
|
119
120
|
unfold/static/unfold/js/chart/LICENSE,sha256=QahKosq6ZF-WahjZwgVrc-bTqB2AvABGvAARomNNTM4,1093
|
120
121
|
unfold/static/unfold/js/chart/chart.js,sha256=22W6cFERR-CElMOKRgMMicueMVP0Vf7FBEBYH8Z8tCk,200633
|
121
122
|
unfold/static/unfold/js/htmx/LICENSE,sha256=09JFb3ZBTyRWEEZg69Za_xwEzXlmuUK9q9Y_PNsxajg,642
|
@@ -123,40 +124,40 @@ unfold/static/unfold/js/htmx/htmx.js,sha256=acrv0NqSJpBm5yXX_hdeJrnVDJYuMFZFnAxH
|
|
123
124
|
unfold/static/unfold/js/select2.init.js,sha256=l0O8ggw_CkAw-QtH3qEzC8xWk0mR9QHjy4VzAjMwiQQ,1109
|
124
125
|
unfold/static/unfold/js/simplebar/LICENSE,sha256=okNJf6UFl2NrEiC4iqORNBa16IKgUgV88acdcl9FbtY,1081
|
125
126
|
unfold/static/unfold/js/simplebar/simplebar.js,sha256=t-uG1FAD6ZoiMeN--wac0XRS7SxoDVG6zvRnGuEp7X8,27176
|
126
|
-
unfold/styles.css,sha256=
|
127
|
+
unfold/styles.css,sha256=nFgCmto4fLeMBh2kZlRCTwLB4V6T-X9vNGKPXX8DWqo,21292
|
127
128
|
unfold/templates/admin/actions.html,sha256=iuuubcAILkOoYBgV6cpXqFIyZUh4zMqyFp0JaDFlPKU,3096
|
128
129
|
unfold/templates/admin/app_index.html,sha256=LRR07CLcZVsYpisCOncWdMSACARNstcDt536Oydnt60,1239
|
129
130
|
unfold/templates/admin/app_list.html,sha256=-DEZKFdmkdTq3rix_cgZurPZ1r8PHg5pBL3i7ZtzVdI,2972
|
130
|
-
unfold/templates/admin/auth/user/add_form.html,sha256
|
131
|
+
unfold/templates/admin/auth/user/add_form.html,sha256=-_YY4guGdAbw2rCskrQfRAAvQF2XzVHt5UMI0fsLDm4,337
|
131
132
|
unfold/templates/admin/auth/user/change_password.html,sha256=028v1dfQTlSmdr-WCuV4lBOmFa7Oo38CsYhsXEe8ANI,2831
|
132
133
|
unfold/templates/admin/base.html,sha256=z9sU8rezHLqOZk5x13_5nvnqpRYf6XxQaMfa7N_GU68,2460
|
133
134
|
unfold/templates/admin/base_site.html,sha256=UOsecaCycpyn_ygJNIKO7MQtDFJuHv--r83-mzaVY30,300
|
134
|
-
unfold/templates/admin/change_form.html,sha256=
|
135
|
+
unfold/templates/admin/change_form.html,sha256=SioX04QmUiCRBQYHD22HRss8V2ubhHDgZ_YVNfqiPV0,5758
|
135
136
|
unfold/templates/admin/change_form_object_tools.html,sha256=eyeH-i2HgEM0Yi-OJA2D1VnKJyC19A_my1IDGxxoP8Y,593
|
136
|
-
unfold/templates/admin/change_list.html,sha256=
|
137
|
+
unfold/templates/admin/change_list.html,sha256=39S_LBbd25DiKhL9HjLOamXN1o-Ads4HfeQ6wEvv8JA,5361
|
137
138
|
unfold/templates/admin/change_list_object_tools.html,sha256=cmMiT2nT20Ph5yfpj9aHPr76Z-JP4aSXp0o-Rnad28s,147
|
138
|
-
unfold/templates/admin/change_list_results.html,sha256=
|
139
|
+
unfold/templates/admin/change_list_results.html,sha256=YwLpgmsPgSSEk5Lw1VmmMfKS85y0ACrkNo-v0BKEw9Q,8238
|
139
140
|
unfold/templates/admin/date_hierarchy.html,sha256=A-sIqBKzZTMqSn3NSHORIL1yTEAqhj4Atff0OvWtqT0,1413
|
140
141
|
unfold/templates/admin/delete_confirmation.html,sha256=IPSGhOpxDl6hJB9LtpSg_XRkVmbDO1BpO9q_dthqkac,4635
|
141
142
|
unfold/templates/admin/delete_selected_confirmation.html,sha256=T3NNe7pP0WM2QM4F39AbkDGsfd_d_tKYRpwxvExahgU,4399
|
142
|
-
unfold/templates/admin/edit_inline/stacked.html,sha256=
|
143
|
-
unfold/templates/admin/edit_inline/tabular.html,sha256=
|
143
|
+
unfold/templates/admin/edit_inline/stacked.html,sha256=szX_jhvXShedo5owpYRGSjvRtYj2BjvukmnLfCsXvwc,8623
|
144
|
+
unfold/templates/admin/edit_inline/tabular.html,sha256=roeOKLctqSGga37jRkpm5X7cyaaXq5kJ31U4_WK2lSg,3015
|
144
145
|
unfold/templates/admin/filter.html,sha256=DEyrLgCWuncS1O1WR0vlt1evGQFvKoZV2pABkHzSoGU,2039
|
145
|
-
unfold/templates/admin/includes/fieldset.html,sha256=
|
146
|
+
unfold/templates/admin/includes/fieldset.html,sha256=knUIN44un4M-M4wlzoLIE1U6qHDlVSt7EH9bV8RwK4g,1461
|
146
147
|
unfold/templates/admin/includes/object_delete_summary.html,sha256=FgwfapZCKWtnFtTHqh1MRuxxLot4bAw92WCcR_V8ImI,444
|
147
148
|
unfold/templates/admin/index.html,sha256=9ey6IIXxBVTEkVSDiQw01AwvMbUnG_h0B08N1Zg3wTg,578
|
148
149
|
unfold/templates/admin/login.html,sha256=W07Dtr3-YQ-JP1jYKZMsBxrmO1u49A5R4UZyOUmZYfY,2465
|
149
150
|
unfold/templates/admin/nav_sidebar.html,sha256=xvCaXOamXawmf80NhE0OwjjjuNwoyoePS--lsdqDeIE,772
|
150
151
|
unfold/templates/admin/object_history.html,sha256=t-iJFQnpstowwsabGGA-FQjmcT1KIKhKLKbQ3iVELkk,4832
|
151
152
|
unfold/templates/admin/pagination.html,sha256=-9kjc_lKEeqvDVHMrnTfnlXDxMSkM8GNRGZGuI9D8os,912
|
152
|
-
unfold/templates/admin/search_form.html,sha256=
|
153
|
-
unfold/templates/admin/submit_line.html,sha256=
|
153
|
+
unfold/templates/admin/search_form.html,sha256=7ckco8llu5paptroZgr3jZw54DtowX-NiwFvxsCV898,1713
|
154
|
+
unfold/templates/admin/submit_line.html,sha256=9FDZ5HOfiJG11HSMtA4rfqjKe3ucC-_OChpx1CGTLac,4626
|
154
155
|
unfold/templates/auth/widgets/read_only_password_hash.html,sha256=MlaNXJ2PLEbv8Nd01BBp-AQEfMB13LNxD_DzRemXhCg,775
|
155
156
|
unfold/templates/registration/logged_out.html,sha256=oIdaqGcvIdBih3yNnUkXSEpvofRsBJ77obldnhcnP2U,997
|
156
157
|
unfold/templates/registration/password_change_done.html,sha256=ITV6Fug4S6YG3WG-O1cm-sDAXTHEXPcNZ_w2x1IQFu8,1006
|
157
158
|
unfold/templates/registration/password_change_form.html,sha256=-8AauxUHWHXVaokG269UsETY_FHKqU83Zx38ZzrAA1A,2159
|
158
159
|
unfold/templates/unfold/components/button.html,sha256=RlNNIa_JmcsNFH151ECHkbB2TxpgeCPRh-eW1Bc0Xtk,933
|
159
|
-
unfold/templates/unfold/components/card.html,sha256=
|
160
|
+
unfold/templates/unfold/components/card.html,sha256=fwko37u8KJIDQwiD2v8RoVuvZu8qBPyPl2TambOcFnc,1349
|
160
161
|
unfold/templates/unfold/components/chart/bar.html,sha256=nDdDCUXvFd793OpNgNPQo0vBmvYngMsQyPHVTf1vfOw,297
|
161
162
|
unfold/templates/unfold/components/chart/cohort.html,sha256=L00WR-igYv0C3t2yT_nZqeI-M5gVHpoaGv5RooRojqU,2402
|
162
163
|
unfold/templates/unfold/components/chart/line.html,sha256=DHaZUFTlCs5cX7ioYdTzoN4ITHWNcEoNSUp7v3hlo_E,298
|
@@ -172,7 +173,7 @@ unfold/templates/unfold/components/title.html,sha256=aMYSO30ybFYqPnqwlJVh2uNmcgn
|
|
172
173
|
unfold/templates/unfold/components/tracker.html,sha256=krlvsb06lpfdOIANsyrBOoLq1sgv6rXUGr-7MmP5Le0,292
|
173
174
|
unfold/templates/unfold/helpers/account_links.html,sha256=Tq30bAkOU8QRR6CaB1CvTfTgkoPP5dz2v0OHYq0pRSE,2348
|
174
175
|
unfold/templates/unfold/helpers/actions_row.html,sha256=RqhZsxgIFR-r1casv5CueL81uxNl8rA3XuCMDP--zLA,2586
|
175
|
-
unfold/templates/unfold/helpers/add_link.html,sha256=
|
176
|
+
unfold/templates/unfold/helpers/add_link.html,sha256=vd-oy-xMIDiVmFVvwDL3-S360hOOmyAdfqcOTdDU1hI,870
|
176
177
|
unfold/templates/unfold/helpers/app_list.html,sha256=baydU9R_xmH9pWgs8B7PUcwTWcLxHDhD1ehs75c5PD0,5879
|
177
178
|
unfold/templates/unfold/helpers/app_list_default.html,sha256=0TR2ZTy0KUqa6YR8IgihA_4RQqBIFOroYpRHHIyD4H8,4015
|
178
179
|
unfold/templates/unfold/helpers/attrs.html,sha256=Mwpj72kuwYj8hOT3J2T8qx6f1r_4xwwaS1slHA-82jI,166
|
@@ -198,12 +199,12 @@ unfold/templates/unfold/helpers/field_readonly_value.html,sha256=FI_CFEsCN7ELQux
|
|
198
199
|
unfold/templates/unfold/helpers/fieldset_row.html,sha256=LriorPLXU4VmqstjX1oBc3T49H8CbhCrRxwQ7YfUSkI,1219
|
199
200
|
unfold/templates/unfold/helpers/fieldset_row_checkbox.html,sha256=z4aRab--zJS2PC0jfKPez85IptKGRrqgkPpwW6_IKoo,1467
|
200
201
|
unfold/templates/unfold/helpers/fieldset_row_field.html,sha256=cqLT1fHsCCszOHxvYlDFDTAd-6RRoOjdqfdBdhFgHOo,647
|
201
|
-
unfold/templates/unfold/helpers/fieldsets_tabs.html,sha256
|
202
|
+
unfold/templates/unfold/helpers/fieldsets_tabs.html,sha256=-xKeJvEma2arbfle1gMMVR3wjaros7EIcbSyAgR0Lh4,1541
|
202
203
|
unfold/templates/unfold/helpers/form_errors.html,sha256=mrv2_J7RPcLfVtoN1UHh3rfUyOSZpHl67wk1UGqtPcY,266
|
203
204
|
unfold/templates/unfold/helpers/form_label.html,sha256=7FfaXfviQmqKpsA1E7NSwM8rJiMNLl9e73XQram0Pfs,249
|
204
205
|
unfold/templates/unfold/helpers/header.html,sha256=cHAPz7niLLQDQbrZpURZS1hiA8OYLzkGaqnYzjgv8aE,1151
|
205
206
|
unfold/templates/unfold/helpers/header_back_button.html,sha256=lNZcYZzQRZdNSI70UrxJ-pq7xnxifziZXtSK1FoPy_U,416
|
206
|
-
unfold/templates/unfold/helpers/help_text.html,sha256=
|
207
|
+
unfold/templates/unfold/helpers/help_text.html,sha256=fDsSptYt6aPO3xPdMgbpwaINaF1FGFmaOb_1FiS_Bsg,118
|
207
208
|
unfold/templates/unfold/helpers/history.html,sha256=qxfCZxFIyl91qDpxfwozhmyVFZwULysA8Y_2H8XJ7bM,1937
|
208
209
|
unfold/templates/unfold/helpers/label.html,sha256=DRs0B08SmIvNY0QcFy78xDiI0hAKyfjExu-cm33PAaQ,911
|
209
210
|
unfold/templates/unfold/helpers/language_form.html,sha256=Ve1qfIcL4DV6cxYfhqGkC_KghDjNyEB8j3hYts1S34M,708
|
@@ -214,23 +215,25 @@ unfold/templates/unfold/helpers/messages/errornote.html,sha256=3RVj4BIdft3yEUOdz
|
|
214
215
|
unfold/templates/unfold/helpers/messages/info.html,sha256=4SCFtg3p6F33ZHJhYoIm2VVO5UPdW0ef04mTTqIdcD0,153
|
215
216
|
unfold/templates/unfold/helpers/messages/success.html,sha256=UWHpRJTvVhXiYC9-AvJ9HeEZJj-poejFgy7EgLvwpf8,157
|
216
217
|
unfold/templates/unfold/helpers/messages/warning.html,sha256=UldycPr8wdyp5vdjlkfs_yHCEvNg9PgspyzTALAjdDY,161
|
217
|
-
unfold/templates/unfold/helpers/messages.html,sha256=
|
218
|
+
unfold/templates/unfold/helpers/messages.html,sha256=SYVGFWdL1ZhFamxnZ6ZJUvs9GKITYpY4fvdebBlSprU,1003
|
218
219
|
unfold/templates/unfold/helpers/navigation.html,sha256=U9cMmw3ETMI88zqHvSf5VQkMehcU6YfLKTcH1CmS4fY,554
|
219
220
|
unfold/templates/unfold/helpers/navigation_header.html,sha256=08_LTuJF6MrG0hK6lUI9daCP5kQr5Q7FwY7Pl4kFxJQ,1474
|
220
|
-
unfold/templates/unfold/helpers/pagination.html,sha256=
|
221
|
+
unfold/templates/unfold/helpers/pagination.html,sha256=cvD4Jtw1YeKcgvWuY10iyM9Qjs52iokskzYG3TLscyY,375
|
221
222
|
unfold/templates/unfold/helpers/pagination_current_item.html,sha256=4cZ2KLVcP0Y7xuGyXgexDQ07r94cgM5Gnmtv11dkRPQ,69
|
222
223
|
unfold/templates/unfold/helpers/pagination_default.html,sha256=pseTrqaG5EOn_IpCy0GXNht3ickSkZYJ4lJaocZeI6A,496
|
223
224
|
unfold/templates/unfold/helpers/pagination_ellipsis.html,sha256=8g0KUUKtqRkXx_EBLGtsJsiYQO4tPS3GazZjxT90e0M,56
|
224
225
|
unfold/templates/unfold/helpers/pagination_infinite.html,sha256=QyHcYb36CeuiwpukC0Y553UC4LU2tPolGos-0mh7WP0,557
|
225
226
|
unfold/templates/unfold/helpers/pagination_inline.html,sha256=wFuXDvW1p-9OF1FSlOERkhP1Jt1WLzNfN7UkqsHtOQ4,1414
|
226
|
-
unfold/templates/unfold/helpers/
|
227
|
-
unfold/templates/unfold/helpers/
|
228
|
-
unfold/templates/unfold/helpers/
|
227
|
+
unfold/templates/unfold/helpers/popup_header.html,sha256=IDR9B0OO6v6TvJggeof-OMGJ4cYK2INStU_2a1AlWfM,1325
|
228
|
+
unfold/templates/unfold/helpers/search.html,sha256=Eo59yc7wRlZ-Ee-AuQCSi-CfBUXUnLBMiSQO8uxaUoo,1772
|
229
|
+
unfold/templates/unfold/helpers/search_results.html,sha256=awd6DWTLILIBnx-QkwN7my8IncTN9BfE8jHm7OibgoM,846
|
230
|
+
unfold/templates/unfold/helpers/shortcut.html,sha256=gVoXCDwEpbjxLilJ3QEoFLWmFlH18-vgoWdHv6aRLfQ,199
|
231
|
+
unfold/templates/unfold/helpers/site_branding.html,sha256=_hhWQZqUrMYGqRJRpeANjbRJPfCROPZkQLZLV7FiRk8,268
|
229
232
|
unfold/templates/unfold/helpers/site_dropdown.html,sha256=UwGFImzujCt20M4_WZt_T9TjeqVSEattYtLXHq57bcY,910
|
230
233
|
unfold/templates/unfold/helpers/site_icon.html,sha256=q9YynbaAZsEXKXT3SDZy54iSdjUwR6i2vo0AFyllGQ0,1490
|
231
234
|
unfold/templates/unfold/helpers/site_logo.html,sha256=S_QJoT2qh0xw0ciaKxoT4GJ6QIH5eqgRSC0abbWWkOI,423
|
232
235
|
unfold/templates/unfold/helpers/submit.html,sha256=LaJdnSDzucH1CpWNCLfqHe_tCcCBMLap8c9ysY2q1HU,211
|
233
|
-
unfold/templates/unfold/helpers/tab_action.html,sha256=
|
236
|
+
unfold/templates/unfold/helpers/tab_action.html,sha256=mJd87_2qkSNQEwDZZCDkvll5ZbizBkPxWFnBR-kH89o,3431
|
234
237
|
unfold/templates/unfold/helpers/tab_actions.html,sha256=Ir0HFxNAdZWdE6GuxaanSScNYONft0lNB1sZZcKMS5Q,685
|
235
238
|
unfold/templates/unfold/helpers/tab_items.html,sha256=5kZcU7R9tZKKxVLahp2siZpZf7FhrluBH1dIAIaWoAg,3377
|
236
239
|
unfold/templates/unfold/helpers/tab_list.html,sha256=mprad7Fu5ms1qGqjDl9HMmtfUodk43smd3IjagYOyr0,452
|
@@ -263,17 +266,17 @@ unfold/templates/unfold/widgets/url.html,sha256=IRLgW44VTKN7UrSWeywJwaxQhfG5jhhX
|
|
263
266
|
unfold/templates/unfold_crispy/display_form.html,sha256=tGyr8hvMlnKkm2ILbVj0enj6IrjtqiKo6nO9Z-zHE2Q,270
|
264
267
|
unfold/templates/unfold_crispy/errors.html,sha256=bzTXuZh_UkQLb4sPaa0En5Uopveoe573TaEOM9OQVcw,132
|
265
268
|
unfold/templates/unfold_crispy/errors_formset.html,sha256=D52cx_PmIF9KSTO8WmQu0m2atpDfLIt79SPKz9LmjSE,136
|
266
|
-
unfold/templates/unfold_crispy/field.html,sha256=
|
269
|
+
unfold/templates/unfold_crispy/field.html,sha256=yOxniE7kAzzPRl8sHH5hHKzSoCYKfJTNeEngoTBHW3U,2079
|
267
270
|
unfold/templates/unfold_crispy/inputs.html,sha256=6aMXsUY26q_JcIVYgd6X4lwbwbagWj68KHyAYk_fCN4,238
|
268
271
|
unfold/templates/unfold_crispy/layout/attrs.html,sha256=LsLlfKenzHKl6n25m4Ers2NepLSA_RBy9AqezKZ7rH8,173
|
269
272
|
unfold/templates/unfold_crispy/layout/baseinput.html,sha256=GjMxXoqpnxCPkPC1E3v_crzlxDb_hHMf_UgJYfqSsYE,440
|
270
273
|
unfold/templates/unfold_crispy/layout/button.html,sha256=evlO80en9FkbW3UayLPTNUZXAYvgr3slSAsGPKXs96M,67
|
271
274
|
unfold/templates/unfold_crispy/layout/buttonholder.html,sha256=ruHqViROk7nh4luckA8-mcfmnYBqsVM85e8j0rOi3cU,415
|
272
|
-
unfold/templates/unfold_crispy/layout/checkbox.html,sha256=
|
275
|
+
unfold/templates/unfold_crispy/layout/checkbox.html,sha256=wyx8RdcRI6YSCxAOl2kKd82rCuKnGwDaVt2qA751FR0,1707
|
273
276
|
unfold/templates/unfold_crispy/layout/column.html,sha256=Bob4xRcbJOHScDjSjLMRIMNf4lonNmm8F_JOm2azTik,172
|
274
277
|
unfold/templates/unfold_crispy/layout/div.html,sha256=RE9qQ2w2I2zpi7Z7xzVmVO03UXq0yZvMw-W7rVJkEdw,174
|
275
278
|
unfold/templates/unfold_crispy/layout/field_errors.html,sha256=N0eNJo4OvYzFHPD6vX2gSZWabm46W1GP011sd_dua1I,291
|
276
|
-
unfold/templates/unfold_crispy/layout/fieldset.html,sha256=
|
279
|
+
unfold/templates/unfold_crispy/layout/fieldset.html,sha256=g1ZIjrdkO3vdoaAj0KO43kss3VJvueh2f7HuP2Z5yLE,764
|
277
280
|
unfold/templates/unfold_crispy/layout/fieldset_subheader.html,sha256=fAD3wa9JiuYJwbo8bsmW-LhMw72V2j27EkRgy0G6Kc8,209
|
278
281
|
unfold/templates/unfold_crispy/layout/help_text.html,sha256=FY0UQv5FsoOFhrqvbILEfZE78Hj30r73YHCtg_MWNeY,207
|
279
282
|
unfold/templates/unfold_crispy/layout/help_text_and_errors.html,sha256=Um14wIg0FHthNM0mKE9VdptTrC-lTTcrDUO-UbbXxhY,108
|
@@ -285,13 +288,13 @@ unfold/templates/unfold_crispy/uni_form.html,sha256=l9UNCUrIycgJ0p_B6qhtO_YxdARy
|
|
285
288
|
unfold/templates/unfold_crispy/whole_uni_form.html,sha256=ufXRKCIGqkqKFOsh166rpKUnHpFMyBV4eYUCRhs3iws,475
|
286
289
|
unfold/templates/unfold_crispy/whole_uni_formset.html,sha256=CYksfG2hRUdi5n691KW2ih-FfBxpOU4qVBfbOvcu1zs,873
|
287
290
|
unfold/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
288
|
-
unfold/templatetags/unfold.py,sha256=
|
289
|
-
unfold/templatetags/unfold_list.py,sha256=
|
291
|
+
unfold/templatetags/unfold.py,sha256=rk4f43w954HawFjhfwqY3zSwNRUGcSfR7FSYCko8_aE,18179
|
292
|
+
unfold/templatetags/unfold_list.py,sha256=WWQSCM4QmQMr8YddA4krFztuuUXo2y28RA7jZfOiewE,14415
|
290
293
|
unfold/typing.py,sha256=i7LM2LiwYTAjT5-OLDUPVn5b9X-DMmHnjlZG2toWwSE,692
|
291
294
|
unfold/utils.py,sha256=lXKkvhaTxoTtd4p3bB0wHIZD26md6XzBcDkPL5bJGH8,6191
|
292
295
|
unfold/views.py,sha256=FuYnMrlg6SegLUDDN6An__yZj8rchD_iBK8myieYhkA,1492
|
293
|
-
unfold/widgets.py,sha256=
|
294
|
-
django_unfold-0.
|
295
|
-
django_unfold-0.
|
296
|
-
django_unfold-0.
|
297
|
-
django_unfold-0.
|
296
|
+
unfold/widgets.py,sha256=S_HEcRNml7E4PqwYUpY58QIP7X6KH-5EHRHwEploCrU,24557
|
297
|
+
django_unfold-0.61.0.dist-info/LICENSE.md,sha256=Ltk_quRyyvV3J5v3brtOqmibeZSw2Hrb8bY1W3ya0Ik,1077
|
298
|
+
django_unfold-0.61.0.dist-info/METADATA,sha256=4YnEukbJQi-U2XT4-O4yzA5RlXDP-5YoO5Du-uSqwFA,8445
|
299
|
+
django_unfold-0.61.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
300
|
+
django_unfold-0.61.0.dist-info/RECORD,,
|
unfold/admin.py
CHANGED
@@ -192,9 +192,9 @@ class ModelAdmin(BaseModelAdminMixin, ActionModelAdminMixin, BaseModelAdmin):
|
|
192
192
|
self, request: HttpRequest, obj: Model, inline: InlineModelAdmin, prefix: str
|
193
193
|
) -> dict[str, Any]:
|
194
194
|
formset_kwargs = super().get_formset_kwargs(request, obj, inline, prefix)
|
195
|
-
formset_kwargs["request"] = request
|
196
195
|
|
197
196
|
if hasattr(inline, "per_page"):
|
197
|
+
formset_kwargs["request"] = request
|
198
198
|
formset_kwargs["per_page"] = inline.per_page
|
199
199
|
|
200
200
|
return formset_kwargs
|
@@ -1,25 +1,23 @@
|
|
1
1
|
{% load i18n %}
|
2
2
|
|
3
|
-
<div {% if not is_popup %}id="submit-row"{% endif %} class="relative
|
4
|
-
<div class="
|
5
|
-
<div class="
|
6
|
-
|
7
|
-
{
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
{% endif %}
|
3
|
+
<div {% if not is_popup %}id="submit-row"{% endif %} class="relative lg:sticky lg:bottom-0 z-40">
|
4
|
+
<div class="backdrop-blur-xs bg-white/80 rounded-b-default pb-4 px-4 dark:bg-base-900/80 {% if not is_popup %}lg:border-t lg:border-base-200 relative lg:scrollable-top lg:py-0 dark:border-base-800{% endif %}">
|
5
|
+
<div class="flex flex-col-reverse gap-3 items-center mx-auto lg:flex-row-reverse container lg:h-[64px]">
|
6
|
+
{% if not revert_disabled %}
|
7
|
+
<button type="submit" form="{{ opts.model_name }}_form" class="bg-primary-600 block border border-transparent cursor-pointer font-medium px-3 py-2 rounded-default text-sm text-white w-full lg:w-auto" name="_save" {{ onclick_attrib }}>
|
8
|
+
{% trans 'Revert' %}
|
9
|
+
</button>
|
10
|
+
{% endif %}
|
12
11
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
{% if change_history %}
|
13
|
+
<button type="submit" form="{{ opts.model_name }}_form" class="bg-primary-600 block border border-transparent cursor-pointer font-medium px-3 py-2 rounded-default text-sm text-white w-full lg:w-auto" name="_change_history" {{ onclick_attrib }}>
|
14
|
+
{% trans 'Change History' %}
|
15
|
+
</button>
|
16
|
+
{% endif %}
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
</div>
|
18
|
+
<a href="{{ history_url }}" class="border border-base-200 font-medium mr-auto px-3 py-2 rounded-default text-sm text-base-500 text-center transition-all w-full hover:bg-base-50 lg:block lg:w-auto dark:border-base-700 dark:text-font-default-dark dark:hover:text-base-200 dark:hover:bg-base-900">
|
19
|
+
{% trans 'Close' %}
|
20
|
+
</a>
|
23
21
|
</div>
|
24
22
|
</div>
|
25
23
|
</div>
|
unfold/forms.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
from collections.abc import Generator
|
2
|
-
from typing import Optional
|
2
|
+
from typing import Optional, Union
|
3
3
|
|
4
4
|
from django import forms
|
5
5
|
from django.contrib.admin.forms import (
|
@@ -181,7 +181,7 @@ class Fieldset(BaseFieldset):
|
|
181
181
|
class Fieldline(BaseFieldline):
|
182
182
|
def __iter__(
|
183
183
|
self,
|
184
|
-
) -> Generator["UnfoldAdminReadonlyField
|
184
|
+
) -> Generator[Union["UnfoldAdminReadonlyField", "UnfoldAdminField"], None, None]:
|
185
185
|
for i, field in enumerate(self.fields):
|
186
186
|
if field in self.readonly_fields:
|
187
187
|
yield UnfoldAdminReadonlyField(
|
@@ -33,7 +33,7 @@ class BaseModelAdminMixin:
|
|
33
33
|
request: HttpRequest,
|
34
34
|
object_id: Optional[str] = None,
|
35
35
|
form_url: str = "",
|
36
|
-
extra_context: Optional[dict[str,
|
36
|
+
extra_context: Optional[dict[str, Any]] = None,
|
37
37
|
) -> Any:
|
38
38
|
from unfold.forms import AdminForm, Fieldline
|
39
39
|
|
@@ -104,7 +104,12 @@ class BaseModelAdminMixin:
|
|
104
104
|
self, db_field: Field, request: HttpRequest, **kwargs
|
105
105
|
) -> Optional[Field]:
|
106
106
|
if "widget" not in kwargs:
|
107
|
-
|
107
|
+
if db_field.choices:
|
108
|
+
kwargs["widget"] = widgets.UnfoldAdminSelectWidget(
|
109
|
+
choices=db_field.choices
|
110
|
+
)
|
111
|
+
else:
|
112
|
+
kwargs["widget"] = widgets.UnfoldAdminNullBooleanSelectWidget()
|
108
113
|
|
109
114
|
return db_field.formfield(**kwargs)
|
110
115
|
|
unfold/sites.py
CHANGED
@@ -170,6 +170,7 @@ class UnfoldAdminSite(AdminSite):
|
|
170
170
|
) -> TemplateResponse:
|
171
171
|
query = request.GET.get("s").lower()
|
172
172
|
app_list = super().get_app_list(request)
|
173
|
+
apps = []
|
173
174
|
results = []
|
174
175
|
|
175
176
|
if query in EMPTY_VALUES:
|
@@ -177,7 +178,7 @@ class UnfoldAdminSite(AdminSite):
|
|
177
178
|
|
178
179
|
for app in app_list:
|
179
180
|
if query in app["name"].lower():
|
180
|
-
|
181
|
+
apps.append(app)
|
181
182
|
continue
|
182
183
|
|
183
184
|
models = []
|
@@ -188,7 +189,16 @@ class UnfoldAdminSite(AdminSite):
|
|
188
189
|
|
189
190
|
if len(models) > 0:
|
190
191
|
app["models"] = models
|
191
|
-
|
192
|
+
apps.append(app)
|
193
|
+
|
194
|
+
for app in apps:
|
195
|
+
for model in app["models"]:
|
196
|
+
results.append(
|
197
|
+
{
|
198
|
+
"app": app,
|
199
|
+
"model": model,
|
200
|
+
}
|
201
|
+
)
|
192
202
|
|
193
203
|
return TemplateResponse(
|
194
204
|
request,
|
@@ -196,6 +206,9 @@ class UnfoldAdminSite(AdminSite):
|
|
196
206
|
context={
|
197
207
|
"results": results,
|
198
208
|
},
|
209
|
+
headers={
|
210
|
+
"HX-Trigger": "search",
|
211
|
+
},
|
199
212
|
)
|
200
213
|
|
201
214
|
def password_change(
|