django-unfold 0.57.0__py3-none-any.whl → 0.58.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.
Files changed (27) hide show
  1. {django_unfold-0.57.0.dist-info → django_unfold-0.58.0.dist-info}/METADATA +1 -1
  2. {django_unfold-0.57.0.dist-info → django_unfold-0.58.0.dist-info}/RECORD +27 -27
  3. unfold/contrib/import_export/templates/admin/import_export/base.html +1 -5
  4. unfold/contrib/import_export/templates/admin/import_export/import_form.html +1 -1
  5. unfold/contrib/simple_history/templates/simple_history/object_history_form.html +1 -1
  6. unfold/decorators.py +1 -2
  7. unfold/sites.py +64 -41
  8. unfold/static/unfold/css/styles.css +2 -2
  9. unfold/styles.css +50 -91
  10. unfold/templates/admin/auth/user/change_password.html +1 -1
  11. unfold/templates/admin/submit_line.html +7 -7
  12. unfold/templates/registration/password_change_done.html +1 -1
  13. unfold/templates/registration/password_change_form.html +1 -1
  14. unfold/templates/unfold/components/card.html +23 -23
  15. unfold/templates/unfold/components/progress.html +9 -7
  16. unfold/templates/unfold/components/table.html +5 -5
  17. unfold/templates/unfold/helpers/change_list_filter_actions.html +1 -1
  18. unfold/templates/unfold/helpers/field.html +2 -2
  19. unfold/templates/unfold/helpers/navigation.html +1 -1
  20. unfold/templates/unfold_crispy/field.html +1 -1
  21. unfold/templates/unfold_crispy/layout/checkbox.html +2 -2
  22. unfold/templates/unfold_crispy/layout/fieldset.html +1 -1
  23. unfold/templates/unfold_crispy/layout/table_inline_formset.html +18 -16
  24. unfold/templatetags/unfold.py +14 -0
  25. unfold/widgets.py +2 -2
  26. {django_unfold-0.57.0.dist-info → django_unfold-0.58.0.dist-info}/LICENSE.md +0 -0
  27. {django_unfold-0.57.0.dist-info → django_unfold-0.58.0.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-unfold
3
- Version: 0.57.0
3
+ Version: 0.58.0
4
4
  Summary: Modern Django admin theme for seamless interface development
5
5
  License: MIT
6
6
  Keywords: django,admin,tailwind,theme
@@ -52,7 +52,7 @@ unfold/contrib/guardian/templates/unfold/guardian/user_form.html,sha256=JqYF7HiI
52
52
  unfold/contrib/import_export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  unfold/contrib/import_export/apps.py,sha256=SdJu6Qh90VqGWY19FSDhhpUqhTbaIYsJKny3zX5baHI,149
54
54
  unfold/contrib/import_export/forms.py,sha256=kh8psUoTObrRb2wtkYhvRu1D5QM02xWk4UNLQT5lQZA,2038
55
- unfold/contrib/import_export/templates/admin/import_export/base.html,sha256=loL2qcV-f8aAzkHss_I4IkwfgemVW2CjOu_aiBxdwX0,357
55
+ unfold/contrib/import_export/templates/admin/import_export/base.html,sha256=y-J1gzrbkF-72XwKnRIC6zAD1Ud3Lwvs2M0UhS-NirI,262
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
@@ -62,7 +62,7 @@ unfold/contrib/import_export/templates/admin/import_export/export.html,sha256=uz
62
62
  unfold/contrib/import_export/templates/admin/import_export/import.html,sha256=uI9me41UQ_iMf1PCPlyGm7MjSqI2lKPhGhUD5IPrDRs,2126
63
63
  unfold/contrib/import_export/templates/admin/import_export/import_confirm.html,sha256=VeGgT1hDunN5c9ijeOvkIezdAmkrsABt5bAnyg5Mu8c,879
64
64
  unfold/contrib/import_export/templates/admin/import_export/import_errors.html,sha256=tgGPoNea7JtuqwVuh-a2TSip7lM8inJvgcVfrsYB_FA,1805
65
- unfold/contrib/import_export/templates/admin/import_export/import_form.html,sha256=lfjgdZDp-C-UiplEcmZVAE2tD25MRt89bAFI087vk54,1000
65
+ unfold/contrib/import_export/templates/admin/import_export/import_form.html,sha256=GkivtNDO5IKuVxwPK1pD0czUsuuXWHGjk2dETO-1pZg,1002
66
66
  unfold/contrib/import_export/templates/admin/import_export/import_preview.html,sha256=365nlrJ36dg4pKGKwIOE9MADWYaHhChp_B2jZG2sBOU,2273
67
67
  unfold/contrib/import_export/templates/admin/import_export/import_validation.html,sha256=K7j5OlWMQUTcSVulJtIraKfWIupSvmN4R5bZ2hH4tRA,5117
68
68
  unfold/contrib/import_export/templates/admin/import_export/resource_fields_list.html,sha256=Bc6uD8aHA5YYbZgLAPpGUckFjnxn9uq19YuKKFxTj4Y,887
@@ -74,11 +74,11 @@ unfold/contrib/inlines/forms.py,sha256=s49xrIkQTbvSMsrP4DydXWkpP1v8NCUmQw_Bcoqf0
74
74
  unfold/contrib/simple_history/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
75
  unfold/contrib/simple_history/apps.py,sha256=eF_KVYb60CAnGgWk2Z1YKYGfgA3TJBMr229qI7e2pgU,153
76
76
  unfold/contrib/simple_history/templates/simple_history/object_history.html,sha256=unZQE70be7cK6v0YPlITFeaosmiLt3kiei-pmmCjBg0,1711
77
- unfold/contrib/simple_history/templates/simple_history/object_history_form.html,sha256=8UHx9KppqXECjDKapx4m0roV-hn59Ahk9hQ8yYmaRpM,2296
77
+ unfold/contrib/simple_history/templates/simple_history/object_history_form.html,sha256=1wsz8KTmjsgAthFS2myfcS3QvyeL0-qT8s2w7JINVhQ,2256
78
78
  unfold/contrib/simple_history/templates/simple_history/object_history_list.html,sha256=PWtjuAcxciAI001qIrXLvbUxzCFl_SDAaHA5FhR16Z8,6858
79
79
  unfold/contrib/simple_history/templates/simple_history/submit_line.html,sha256=tJgOgq7lMetWF4DJoBqUYdRSY6EeRivXhOBYlyPXzTk,1750
80
80
  unfold/dataclasses.py,sha256=a-9INnkCAIcnMgoffTcB1rxWCJH33AjhMCWIGWnjWbI,719
81
- unfold/decorators.py,sha256=15X9FdoKkgxweUqIboH7kiDrBheT3uBEFNT-JummEl0,4297
81
+ unfold/decorators.py,sha256=FZ0to60sg9fefOCpYiziG9UbV6mgmiEk0lc1wQyisXc,4302
82
82
  unfold/enums.py,sha256=9sTfyEycMWeoGPBa-ft6ZhQGnW1vkFg108RMBVf9nko,187
83
83
  unfold/exceptions.py,sha256=gcCj1ox61E137bk_0Cqy4YC3SttdPgB-fiJUqpmyHSE,43
84
84
  unfold/fields.py,sha256=J3goIMlP_XOmQ85Xgh2v5MylXSP1o5I7o9_So2FQn2k,7461
@@ -91,12 +91,12 @@ unfold/overrides.py,sha256=ERVY9boZiXgjDYcTEZcIp7KWoeBZ45VM_zN31yAOjyQ,2922
91
91
  unfold/paginator.py,sha256=vWCIfpuWbV3nvIkQOPyD7MLTg2hZplHz3rze42d-qiA,268
92
92
  unfold/sections.py,sha256=Lcg3xCZ76fqjm4vD4x7YdE5VsbTKluL-sX5QTEBlHxA,2379
93
93
  unfold/settings.py,sha256=M5LVVwatGKk6AOZBkBY_vXFntn7ENla9rqMQG0gxb0U,2753
94
- unfold/sites.py,sha256=_bI51vx16-0FYREx6rS01afirpcu8pKzk1-dlTDgByg,16828
94
+ unfold/sites.py,sha256=Roo_hXNB-6X7uENluXh3yT_NPA0W3uv8Nish72QJUb8,17318
95
95
  unfold/static/admin/js/admin/RelatedObjectLookups.js,sha256=alI0-yq7YPDJJJn-yg1ce79-Cv88yQDUrfaGqFZnsaY,9048
96
96
  unfold/static/admin/js/inlines.js,sha256=zcYwLGI_6RHg-gucDbbhp43RRoZd3so8bPk841KFaIE,15573
97
97
  unfold/static/unfold/css/simplebar/LICENSE,sha256=okNJf6UFl2NrEiC4iqORNBa16IKgUgV88acdcl9FbtY,1081
98
98
  unfold/static/unfold/css/simplebar/simplebar.css,sha256=5LLaEM11pKi6JFCOLt4XKuZxTpT9rpdq_tNlaQytFlU,4647
99
- unfold/static/unfold/css/styles.css,sha256=wbTnpCdtVDzFOEo5w5PMYNkQo0ikbGyNjUOGr-ObTAU,152063
99
+ unfold/static/unfold/css/styles.css,sha256=8MvwCnrFLcXnTXgB39xn4xSNV8o6q2GZIClcPEuHrzg,158422
100
100
  unfold/static/unfold/fonts/inter/Inter-Bold.woff2,sha256=-oiBJ7baAVtlVp8DUfO1w5GtkokElR8cIOn4RiqNleo,114840
101
101
  unfold/static/unfold/fonts/inter/Inter-Medium.woff2,sha256=D_PpRhThST61VjFP0keubEqFp3g7TMhr5TmUDPg_Kkg,114348
102
102
  unfold/static/unfold/fonts/inter/Inter-Regular.woff2,sha256=4G9rG8VTqupORmgCPtCrChRxKcMQf1Ebx9A9NhsK4IU,111268
@@ -120,12 +120,12 @@ unfold/static/unfold/js/htmx/htmx.js,sha256=acrv0NqSJpBm5yXX_hdeJrnVDJYuMFZFnAxH
120
120
  unfold/static/unfold/js/select2.init.js,sha256=l0O8ggw_CkAw-QtH3qEzC8xWk0mR9QHjy4VzAjMwiQQ,1109
121
121
  unfold/static/unfold/js/simplebar/LICENSE,sha256=okNJf6UFl2NrEiC4iqORNBa16IKgUgV88acdcl9FbtY,1081
122
122
  unfold/static/unfold/js/simplebar/simplebar.js,sha256=t-uG1FAD6ZoiMeN--wac0XRS7SxoDVG6zvRnGuEp7X8,27176
123
- unfold/styles.css,sha256=lStfZHh68MEe4H77FIkm0aAcFC9_RmnvFkYI84C8og0,21527
123
+ unfold/styles.css,sha256=4jfRd3it5Xllssqjc4xcAItlSAmbsF5tsOBut6cK4m0,21729
124
124
  unfold/templates/admin/actions.html,sha256=iuuubcAILkOoYBgV6cpXqFIyZUh4zMqyFp0JaDFlPKU,3096
125
125
  unfold/templates/admin/app_index.html,sha256=LRR07CLcZVsYpisCOncWdMSACARNstcDt536Oydnt60,1239
126
126
  unfold/templates/admin/app_list.html,sha256=2JbGENeKAVqYGYwm2Yv7I0lzQrLz0xRND18kPiMIi_Q,2861
127
127
  unfold/templates/admin/auth/user/add_form.html,sha256=tZgg6UoKxJ7zL6T99PLHlLBwd4LlDI2mGn6d5hmtsPs,486
128
- unfold/templates/admin/auth/user/change_password.html,sha256=FMWWHfOlV_-DWrkSI_eIjaH8SKSuYeCAVUads32Fg9M,2912
128
+ unfold/templates/admin/auth/user/change_password.html,sha256=028v1dfQTlSmdr-WCuV4lBOmFa7Oo38CsYhsXEe8ANI,2831
129
129
  unfold/templates/admin/base.html,sha256=lXL_Hdhfflcpd_qxZ6o7GVBdAt3kZAtnnETiYrVHKfc,2460
130
130
  unfold/templates/admin/base_site.html,sha256=UOsecaCycpyn_ygJNIKO7MQtDFJuHv--r83-mzaVY30,300
131
131
  unfold/templates/admin/change_form.html,sha256=pdH089m7iaEDMUxKCWg5OSQmte0nU2Ir8gxFzrwtwB4,5611
@@ -147,13 +147,13 @@ unfold/templates/admin/nav_sidebar.html,sha256=xvCaXOamXawmf80NhE0OwjjjuNwoyoePS
147
147
  unfold/templates/admin/object_history.html,sha256=t-iJFQnpstowwsabGGA-FQjmcT1KIKhKLKbQ3iVELkk,4832
148
148
  unfold/templates/admin/pagination.html,sha256=Jc8kqZp2LMZ1xdJCGg2O5YB1lgcUG9nm-sXTWaW9Ckc,897
149
149
  unfold/templates/admin/search_form.html,sha256=ebd6ccOASaIUQsOZ0mVkcoB-EiKLqkN7y7cEm3fwsL8,1360
150
- unfold/templates/admin/submit_line.html,sha256=GVkso30iUK8bj5qwknqBQwTeNw6XdwX9OzGBK0Nroog,4538
150
+ unfold/templates/admin/submit_line.html,sha256=GvknbdmXXEw93BIQ8azUHhnQ1AcojExgGiSr0XaNg2A,4658
151
151
  unfold/templates/auth/widgets/read_only_password_hash.html,sha256=MlaNXJ2PLEbv8Nd01BBp-AQEfMB13LNxD_DzRemXhCg,775
152
152
  unfold/templates/registration/logged_out.html,sha256=oIdaqGcvIdBih3yNnUkXSEpvofRsBJ77obldnhcnP2U,997
153
- unfold/templates/registration/password_change_done.html,sha256=svhVNS7A28cJy-UE9-koF6yhPsRph6DeLi3wCB3Yg8I,1085
154
- unfold/templates/registration/password_change_form.html,sha256=nVOKTdUFdgDhkWT-tQRbBAZvnXkwbJn7pbgJ_qktgO0,2240
153
+ unfold/templates/registration/password_change_done.html,sha256=ITV6Fug4S6YG3WG-O1cm-sDAXTHEXPcNZ_w2x1IQFu8,1006
154
+ unfold/templates/registration/password_change_form.html,sha256=-8AauxUHWHXVaokG269UsETY_FHKqU83Zx38ZzrAA1A,2159
155
155
  unfold/templates/unfold/components/button.html,sha256=19z4DHnhVmq2wL2WyvoZxtNu8xGCAKXGuDa2snZTF50,630
156
- unfold/templates/unfold/components/card.html,sha256=sUi6Van8EHbuTpnRdxqpv6sqcQK0_BiooJlY1iTdtPo,1187
156
+ unfold/templates/unfold/components/card.html,sha256=N9ld_SWpXdmaqAea9bboy0bTg1YqIkAhsJmOj7nd0qs,1353
157
157
  unfold/templates/unfold/components/chart/bar.html,sha256=nDdDCUXvFd793OpNgNPQo0vBmvYngMsQyPHVTf1vfOw,297
158
158
  unfold/templates/unfold/components/chart/cohort.html,sha256=L00WR-igYv0C3t2yT_nZqeI-M5gVHpoaGv5RooRojqU,2402
159
159
  unfold/templates/unfold/components/chart/line.html,sha256=DHaZUFTlCs5cX7ioYdTzoN4ITHWNcEoNSUp7v3hlo_E,298
@@ -161,9 +161,9 @@ unfold/templates/unfold/components/container.html,sha256=WBk1rGHnTsObi3pJCpL3dfF
161
161
  unfold/templates/unfold/components/flex.html,sha256=_hBsQLJ6-7MfEfXNp5Wy-ykNtPMnnNg_io2IMGegn3s,134
162
162
  unfold/templates/unfold/components/icon.html,sha256=Qlhcf41FOwNVJ-nvA0RJ_Dn6JW6PUFXO6tOR3Xtf6e8,99
163
163
  unfold/templates/unfold/components/navigation.html,sha256=eVpuQ_yTxIv6JVL8sM21Wy-sBfGviIdEsQbEWPgw5WQ,903
164
- unfold/templates/unfold/components/progress.html,sha256=wPMiAKtKw4mwVXmiE7qNiyc-_Xy5HrGQ1GujtmmvTbU,816
164
+ unfold/templates/unfold/components/progress.html,sha256=5D9z7PDo68jI_33e-MVPM0V3tywswn5fWc_x39XKQ_4,972
165
165
  unfold/templates/unfold/components/separator.html,sha256=yvHywT_MFkx5dNC2K53OFHRGxLDsEjRpptujXyGeoTY,168
166
- unfold/templates/unfold/components/table.html,sha256=sNCP1K9uU-nJFOiztRLjNAzrLrSOvm6OeWYbHOQ74LI,3116
166
+ unfold/templates/unfold/components/table.html,sha256=VVMTrrDy_Oq09MG9aNAsnMZfXSp23K2sAMRnbjzOZmI,3355
167
167
  unfold/templates/unfold/components/text.html,sha256=-GjxvdiaBQIaNfPSzT6SSIwnc3R27FkSDQMoF3FDPso,102
168
168
  unfold/templates/unfold/components/title.html,sha256=aMYSO30ybFYqPnqwlJVh2uNmcgnVrRycZkHTjJTjpX8,171
169
169
  unfold/templates/unfold/components/tracker.html,sha256=krlvsb06lpfdOIANsyrBOoLq1sgv6rXUGr-7MmP5Le0,292
@@ -177,7 +177,7 @@ unfold/templates/unfold/helpers/boolean.html,sha256=kcSZr3siQeBWIy_jsx1tFf4m6IB3
177
177
  unfold/templates/unfold/helpers/breadcrumb_item.html,sha256=9T6ojN7LOXIlgwSwlIwHgy5U22eQYtarCqcmzsQIoPU,201
178
178
  unfold/templates/unfold/helpers/change_list_actions.html,sha256=XceGYsclqM5atPtN8NC3dffHh_R78mt-OD9QLONqdr8,651
179
179
  unfold/templates/unfold/helpers/change_list_filter.html,sha256=WwU-AG4U5qZQ_sFs1z_jaaYBWqIv3ASmtKIQIhAp2gs,1908
180
- unfold/templates/unfold/helpers/change_list_filter_actions.html,sha256=cUkmKFnZB97gmofQugQfWWPS6szqEE9-p_rsEc5tjrw,2022
180
+ unfold/templates/unfold/helpers/change_list_filter_actions.html,sha256=K32esRWcttvg8_9YvFMDurvUhL71SHjpqBSJv-ll0Po,2037
181
181
  unfold/templates/unfold/helpers/delete_submit_line.html,sha256=7SNS0axGytvUih9KxtOzy9ZC5rwG9u99iQxlnUZQfdE,700
182
182
  unfold/templates/unfold/helpers/display_dropdown.html,sha256=IpOy8-hww4arAVjPIRsHrip30J3IEd2p-2BzD3BjIaA,2906
183
183
  unfold/templates/unfold/helpers/display_header.html,sha256=2u-5Vc3mA6rS3ZlOWm3WRNLUX1wmZy4OSmGY2mdPZYs,1714
@@ -189,7 +189,7 @@ unfold/templates/unfold/helpers/edit_inline/tabular_heading.html,sha256=ER8R64wn
189
189
  unfold/templates/unfold/helpers/edit_inline/tabular_row.html,sha256=eCyWEYvvDDCr9SR4_0ua5-GqCLIlFzgQYIZP0ip8cp8,2145
190
190
  unfold/templates/unfold/helpers/edit_inline/tabular_title.html,sha256=2sk1TRzpmwy8PPPMNdf6CJx0zVSk-I2q3yX8uEPjuxE,2710
191
191
  unfold/templates/unfold/helpers/empty_results.html,sha256=Sbp1dOgazpbSwyiX1CT-Arbe51V79MhV8w9IAiHRIE0,1963
192
- unfold/templates/unfold/helpers/field.html,sha256=awM8lUlERpPSSz9TczWrMvxXzY8jGbEvix0JzWvHMVE,979
192
+ unfold/templates/unfold/helpers/field.html,sha256=2q2M4dfisKJ9v8jt8gcq-iRf74t6H9W6xg16scZNF70,979
193
193
  unfold/templates/unfold/helpers/field_readonly.html,sha256=4qtXjWE7SA2qZSTYLOv0lT4pQfD0TE34mvWQJY7jhS8,237
194
194
  unfold/templates/unfold/helpers/field_readonly_value.html,sha256=FI_CFEsCN7ELQux9gF-IaZ7nT7jyzidqwR2Med-E52g,504
195
195
  unfold/templates/unfold/helpers/fieldset_row.html,sha256=LriorPLXU4VmqstjX1oBc3T49H8CbhCrRxwQ7YfUSkI,1219
@@ -211,7 +211,7 @@ unfold/templates/unfold/helpers/messages/info.html,sha256=4SCFtg3p6F33ZHJhYoIm2V
211
211
  unfold/templates/unfold/helpers/messages/success.html,sha256=UWHpRJTvVhXiYC9-AvJ9HeEZJj-poejFgy7EgLvwpf8,157
212
212
  unfold/templates/unfold/helpers/messages/warning.html,sha256=UldycPr8wdyp5vdjlkfs_yHCEvNg9PgspyzTALAjdDY,161
213
213
  unfold/templates/unfold/helpers/messages.html,sha256=ISkUlIDraDAVBwASkX1tFXHo8TY1vHKmmhh8BAg123E,915
214
- unfold/templates/unfold/helpers/navigation.html,sha256=HSUKJdIIpaalBaUXzaKRbnV9QYNcRyCJayPTRJ5b97Y,503
214
+ unfold/templates/unfold/helpers/navigation.html,sha256=IPE9Z48XTuI2q72sNJcFTPXDn8_F2FhzgvipTymnFck,526
215
215
  unfold/templates/unfold/helpers/navigation_header.html,sha256=08_LTuJF6MrG0hK6lUI9daCP5kQr5Q7FwY7Pl4kFxJQ,1474
216
216
  unfold/templates/unfold/helpers/pagination.html,sha256=N5TQDlj5kgJLj02oRiaX8W62jQtZVNoWfI2hXdpuY1g,439
217
217
  unfold/templates/unfold/helpers/pagination_current_item.html,sha256=4cZ2KLVcP0Y7xuGyXgexDQ07r94cgM5Gnmtv11dkRPQ,69
@@ -254,34 +254,34 @@ unfold/templates/unfold/widgets/url.html,sha256=IRLgW44VTKN7UrSWeywJwaxQhfG5jhhX
254
254
  unfold/templates/unfold_crispy/display_form.html,sha256=tGyr8hvMlnKkm2ILbVj0enj6IrjtqiKo6nO9Z-zHE2Q,270
255
255
  unfold/templates/unfold_crispy/errors.html,sha256=bzTXuZh_UkQLb4sPaa0En5Uopveoe573TaEOM9OQVcw,132
256
256
  unfold/templates/unfold_crispy/errors_formset.html,sha256=D52cx_PmIF9KSTO8WmQu0m2atpDfLIt79SPKz9LmjSE,136
257
- unfold/templates/unfold_crispy/field.html,sha256=Sh7m8_2Z3p8UjeQCbgmJYu-qQuF2ZC-_NUDYN8PTllY,1604
257
+ unfold/templates/unfold_crispy/field.html,sha256=K8B4K28oMI914QiD_21g6NO_86_9T66t7Amxomja12c,1681
258
258
  unfold/templates/unfold_crispy/inputs.html,sha256=6aMXsUY26q_JcIVYgd6X4lwbwbagWj68KHyAYk_fCN4,238
259
259
  unfold/templates/unfold_crispy/layout/attrs.html,sha256=LsLlfKenzHKl6n25m4Ers2NepLSA_RBy9AqezKZ7rH8,173
260
260
  unfold/templates/unfold_crispy/layout/baseinput.html,sha256=GjMxXoqpnxCPkPC1E3v_crzlxDb_hHMf_UgJYfqSsYE,440
261
261
  unfold/templates/unfold_crispy/layout/button.html,sha256=evlO80en9FkbW3UayLPTNUZXAYvgr3slSAsGPKXs96M,67
262
262
  unfold/templates/unfold_crispy/layout/buttonholder.html,sha256=ruHqViROk7nh4luckA8-mcfmnYBqsVM85e8j0rOi3cU,415
263
- unfold/templates/unfold_crispy/layout/checkbox.html,sha256=X_a8_1VOzQU8gcY7fJOHrMNj5Mdg5LirVSkaWda_eCk,735
263
+ unfold/templates/unfold_crispy/layout/checkbox.html,sha256=V1YGDcYfn4spUHx6M5ux8fzfY7vrWCPCO2UfqFyAKos,769
264
264
  unfold/templates/unfold_crispy/layout/column.html,sha256=Bob4xRcbJOHScDjSjLMRIMNf4lonNmm8F_JOm2azTik,172
265
265
  unfold/templates/unfold_crispy/layout/div.html,sha256=RE9qQ2w2I2zpi7Z7xzVmVO03UXq0yZvMw-W7rVJkEdw,174
266
266
  unfold/templates/unfold_crispy/layout/field_errors.html,sha256=N0eNJo4OvYzFHPD6vX2gSZWabm46W1GP011sd_dua1I,291
267
- unfold/templates/unfold_crispy/layout/fieldset.html,sha256=hbsM_wCgdcvlZ9D6t1jHACbBf7nbV9-5Ycq-TylJ8QY,589
267
+ unfold/templates/unfold_crispy/layout/fieldset.html,sha256=batc1TDIHvtzX9ZchvSyH3r3q9s7bgr7DpxEfnwvvjk,601
268
268
  unfold/templates/unfold_crispy/layout/help_text.html,sha256=FY0UQv5FsoOFhrqvbILEfZE78Hj30r73YHCtg_MWNeY,207
269
269
  unfold/templates/unfold_crispy/layout/help_text_and_errors.html,sha256=Um14wIg0FHthNM0mKE9VdptTrC-lTTcrDUO-UbbXxhY,108
270
270
  unfold/templates/unfold_crispy/layout/hr.html,sha256=_u0V0lIdK3PLREGspx3zywhUQHcFeY7BuMUbaLyN1WU,321
271
271
  unfold/templates/unfold_crispy/layout/radio_checkbox_select.html,sha256=pUlHC6j-fH62fAMiAZW-4BWXGD0RocHOKCmLtHN9pP8,997
272
272
  unfold/templates/unfold_crispy/layout/row.html,sha256=MgGCI9s2mEn8C6xc78fb2Y4BsW6sbsKvgEd6aVRlFsg,184
273
- unfold/templates/unfold_crispy/layout/table_inline_formset.html,sha256=bV1I6_Q5EXfMT0bxMfIGifMl2PJI4cKKDNreCbl6E24,4629
273
+ unfold/templates/unfold_crispy/layout/table_inline_formset.html,sha256=6c0C5jZYGuQQoJsd_mu0aHs-Jq7OzzFbUTTqyAniYB4,4705
274
274
  unfold/templates/unfold_crispy/uni_form.html,sha256=l9UNCUrIycgJ0p_B6qhtO_YxdARy3aq8qYY5h5BheSo,312
275
275
  unfold/templates/unfold_crispy/whole_uni_form.html,sha256=ufXRKCIGqkqKFOsh166rpKUnHpFMyBV4eYUCRhs3iws,475
276
276
  unfold/templates/unfold_crispy/whole_uni_formset.html,sha256=CYksfG2hRUdi5n691KW2ih-FfBxpOU4qVBfbOvcu1zs,873
277
277
  unfold/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
278
- unfold/templatetags/unfold.py,sha256=f2RL7bdR3qsX-ayRjgxXuclUv5vC-cSlArqfsRva-dI,17031
278
+ unfold/templatetags/unfold.py,sha256=ht7dnFDANrzly8guUMES-PRR4S5e82I8fuWMD0bDieg,17297
279
279
  unfold/templatetags/unfold_list.py,sha256=ayShOYEXcV3o7wKt3t2aFTWvg62Mb-WGlxjYVGgk3a0,14344
280
280
  unfold/typing.py,sha256=i7LM2LiwYTAjT5-OLDUPVn5b9X-DMmHnjlZG2toWwSE,692
281
281
  unfold/utils.py,sha256=SJikRuAuJN0bE9rfzUujZwycTRrzQm14Hk0zB0EwivU,6164
282
282
  unfold/views.py,sha256=FuYnMrlg6SegLUDDN6An__yZj8rchD_iBK8myieYhkA,1492
283
- unfold/widgets.py,sha256=AFZvlDkLOEs1W_1KmMM-lbW_Iv8hFi2iORZMEWPIl5o,23062
284
- django_unfold-0.57.0.dist-info/LICENSE.md,sha256=Ltk_quRyyvV3J5v3brtOqmibeZSw2Hrb8bY1W3ya0Ik,1077
285
- django_unfold-0.57.0.dist-info/METADATA,sha256=am0IjxTMFwFGDo-bUxFCaPS0fuUZIkt0HQf7D__4wkA,7951
286
- django_unfold-0.57.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
287
- django_unfold-0.57.0.dist-info/RECORD,,
283
+ unfold/widgets.py,sha256=ZpwWbxEwgIqf-rZEaU71UwGwyuGyxE5TofaytXxxFEg,23062
284
+ django_unfold-0.58.0.dist-info/LICENSE.md,sha256=Ltk_quRyyvV3J5v3brtOqmibeZSw2Hrb8bY1W3ya0Ik,1077
285
+ django_unfold-0.58.0.dist-info/METADATA,sha256=bnstJhcMtmg1VBaWRfJO9Mt12BRJp6F_ikTi513G5nI,7951
286
+ django_unfold-0.58.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
287
+ django_unfold-0.58.0.dist-info/RECORD,,
@@ -1,11 +1,7 @@
1
1
  {% extends "admin/base_site.html" %}
2
2
  {% load admin_modify admin_urls i18n static %}
3
3
 
4
- {% block extrastyle %}
5
- {{ block.super }}
6
-
7
- <link rel="stylesheet" type="text/css" href="{% static "admin/css/forms.css" %}" />
8
- {% endblock %}
4
+ {% block extrastyle %}{{ block.super }}{% endblock %}
9
5
 
10
6
  {% block bodyclass %}
11
7
  {{ block.super }} {{ opts.app_label }}-{{ opts.object_name.lower }} change-form
@@ -6,7 +6,7 @@
6
6
 
7
7
  {% include "admin/import_export/resource_fields_list.html" with import_or_export="import" %}
8
8
 
9
- <fieldset class="border border-base-200 mb-8 rounded-default pt-3 px-3 shadow-xs dark:border-base-800">
9
+ <fieldset class="border border-base-200 mb-8 rounded-default pt-2.5 px-3 shadow-xs dark:border-base-800">
10
10
  {% for field in form %}
11
11
  {% if field.field.widget.attrs.readonly %}
12
12
  {% include "unfold/helpers/field_readonly.html" with title=field.label value=field.field.value %}
@@ -43,7 +43,7 @@
43
43
  {% endblock %}
44
44
 
45
45
  {% block form_top %}
46
- <p class="px-3 py-3 rounded-default 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">
46
+ <p class="px-3 py-3 rounded-default text-sm last:mb-8 bg-blue-50 mb-8 text-blue-500 dark:bg-blue-500/20">
47
47
  {% if not revert_disabled %}
48
48
  {% blocktrans %}Press the 'Revert' button below to revert to this version of the object.{% endblocktrans %}
49
49
  {% endif %}
unfold/decorators.py CHANGED
@@ -8,8 +8,7 @@ from django.db.models.expressions import BaseExpression, Combinable
8
8
  from django.http import HttpRequest, HttpResponse
9
9
 
10
10
  from unfold.enums import ActionVariant
11
-
12
- from .typing import ActionFunction
11
+ from unfold.typing import ActionFunction
13
12
 
14
13
 
15
14
  def action(
unfold/sites.py CHANGED
@@ -243,58 +243,58 @@ class UnfoldAdminSite(AdminSite):
243
243
  results = []
244
244
 
245
245
  for group in copy.deepcopy(navigation):
246
- allowed_items = []
247
-
248
- for item in group["items"]:
249
- if "active" in item:
250
- item["active"] = self._get_value(item["active"], request)
251
- else:
252
- item["active"] = self._get_is_active(
253
- request, item.get("link_callback") or item["link"]
254
- )
246
+ group["items"] = self._get_navigation_items(request, group["items"], tabs)
247
+ results.append(group)
255
248
 
256
- # Checks if any tab item is active and then marks the sidebar link as active
257
- for tab in tabs:
258
- has_primary_link = False
259
- has_tab_link_active = False
249
+ return results
260
250
 
261
- for tab_item in tab["items"]:
262
- if item["link"] == tab_item["link"]:
263
- has_primary_link = True
264
- continue
251
+ def _get_navigation_items(
252
+ self, request: HttpRequest, items: list[dict], tabs: list[dict] = None
253
+ ) -> list:
254
+ allowed_items = []
265
255
 
266
- if self._get_is_active(
267
- request, tab_item.get("link_callback") or tab_item["link"]
268
- ):
269
- has_tab_link_active = True
270
- break
256
+ for item in items:
257
+ link = item.get("link")
271
258
 
272
- if has_primary_link and has_tab_link_active:
273
- item["active"] = True
259
+ if "active" in item:
260
+ item["active"] = self._get_value(item["active"], request)
261
+ else:
262
+ item["active"] = self._get_is_active(
263
+ request, item.get("link_callback") or link
264
+ )
274
265
 
275
- if isinstance(item["link"], Callable):
276
- item["link_callback"] = lazy(item["link"])(request)
266
+ # Checks if any tab item is active and then marks the sidebar link as active
267
+ if (
268
+ tabs
269
+ and (is_active := self._get_is_tab_active(request, tabs, link))
270
+ and is_active
271
+ ):
272
+ item["active"] = True
277
273
 
278
- # Permission callback
279
- item["has_permission"] = self._call_permission_callback(
280
- item.get("permission"), request
281
- )
274
+ # Link callback
275
+ if isinstance(link, Callable):
276
+ item["link_callback"] = lazy(link)(request)
282
277
 
283
- # Badge callbacks
284
- if "badge" in item and isinstance(item["badge"], str):
285
- try:
286
- callback = import_string(item["badge"])
287
- item["badge_callback"] = lazy(callback)(request)
288
- except ImportError:
289
- pass
278
+ # Permission callback
279
+ item["has_permission"] = self._call_permission_callback(
280
+ item.get("permission"), request
281
+ )
290
282
 
291
- allowed_items.append(item)
283
+ # Badge callbacks
284
+ if "badge" in item and isinstance(item["badge"], str):
285
+ try:
286
+ callback = import_string(item["badge"])
287
+ item["badge_callback"] = lazy(callback)(request)
288
+ except ImportError:
289
+ pass
292
290
 
293
- group["items"] = allowed_items
291
+ # Process nested items
292
+ if "items" in item:
293
+ item["items"] = self._get_navigation_items(request, item["items"])
294
294
 
295
- results.append(group)
295
+ allowed_items.append(item)
296
296
 
297
- return results
297
+ return allowed_items
298
298
 
299
299
  def get_tabs_list(self, request: HttpRequest) -> list[dict[str, Any]]:
300
300
  tabs = copy.deepcopy(self._get_config("TABS", request))
@@ -381,6 +381,29 @@ class UnfoldAdminSite(AdminSite):
381
381
 
382
382
  return False
383
383
 
384
+ def _get_is_tab_active(
385
+ self, request: HttpRequest, tabs: list[dict], link: str
386
+ ) -> bool:
387
+ for tab in tabs:
388
+ has_primary_link = False
389
+ has_tab_link_active = False
390
+
391
+ for tab_item in tab["items"]:
392
+ if link == tab_item["link"]:
393
+ has_primary_link = True
394
+ continue
395
+
396
+ if self._get_is_active(
397
+ request, tab_item.get("link_callback") or tab_item["link"]
398
+ ):
399
+ has_tab_link_active = True
400
+ break
401
+
402
+ if has_primary_link and has_tab_link_active:
403
+ return True
404
+
405
+ return False
406
+
384
407
  def _get_config(self, key: str, *args) -> Any:
385
408
  config = get_config(self.settings_name)
386
409