django-unfold 0.56.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.
- {django_unfold-0.56.0.dist-info → django_unfold-0.58.0.dist-info}/METADATA +1 -1
- {django_unfold-0.56.0.dist-info → django_unfold-0.58.0.dist-info}/RECORD +45 -41
- unfold/contrib/import_export/templates/admin/import_export/base.html +1 -5
- unfold/contrib/import_export/templates/admin/import_export/import_form.html +1 -1
- unfold/contrib/simple_history/templates/simple_history/object_history_form.html +1 -1
- unfold/decorators.py +1 -2
- unfold/forms.py +3 -2
- unfold/layout.py +19 -1
- unfold/sites.py +64 -41
- unfold/static/unfold/css/styles.css +2 -2
- unfold/styles.css +66 -117
- unfold/templates/admin/actions.html +1 -1
- unfold/templates/admin/auth/user/change_password.html +1 -1
- unfold/templates/admin/submit_line.html +7 -7
- unfold/templates/registration/password_change_done.html +1 -1
- unfold/templates/registration/password_change_form.html +1 -1
- unfold/templates/unfold/components/card.html +23 -23
- unfold/templates/unfold/components/progress.html +9 -7
- unfold/templates/unfold/components/table.html +5 -5
- unfold/templates/unfold/helpers/change_list_filter_actions.html +1 -1
- unfold/templates/unfold/helpers/edit_inline/tabular_field.html +1 -1
- unfold/templates/unfold/helpers/field.html +2 -2
- unfold/templates/unfold/helpers/field_readonly_value.html +1 -1
- unfold/templates/unfold/helpers/fieldset_row_checkbox.html +2 -2
- unfold/templates/unfold/helpers/fieldset_row_field.html +2 -2
- unfold/templates/unfold/helpers/form_errors.html +1 -1
- unfold/templates/unfold/helpers/messages/errornote.html +1 -5
- unfold/templates/unfold/helpers/navigation.html +1 -1
- unfold/templates/unfold/layouts/skeleton.html +1 -1
- unfold/templates/unfold/widgets/clearable_file_input.html +3 -3
- unfold/templates/unfold/widgets/clearable_file_input_small.html +1 -1
- unfold/templates/unfold/widgets/select.html +9 -0
- unfold/templates/unfold_crispy/errors_formset.html +3 -0
- unfold/templates/unfold_crispy/field.html +1 -1
- unfold/templates/unfold_crispy/inputs.html +1 -1
- unfold/templates/unfold_crispy/layout/checkbox.html +2 -2
- unfold/templates/unfold_crispy/layout/field_errors.html +5 -5
- unfold/templates/unfold_crispy/layout/fieldset.html +1 -1
- unfold/templates/unfold_crispy/layout/hr.html +13 -0
- unfold/templates/unfold_crispy/layout/table_inline_formset.html +23 -19
- unfold/templates/unfold_crispy/whole_uni_formset.html +30 -0
- unfold/templatetags/unfold.py +14 -0
- unfold/widgets.py +32 -2
- {django_unfold-0.56.0.dist-info → django_unfold-0.58.0.dist-info}/LICENSE.md +0 -0
- {django_unfold-0.56.0.dist-info → django_unfold-0.58.0.dist-info}/WHEEL +0 -0
@@ -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=
|
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=
|
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,16 +74,16 @@ 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=
|
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=
|
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
|
85
|
-
unfold/forms.py,sha256=
|
86
|
-
unfold/layout.py,sha256=
|
85
|
+
unfold/forms.py,sha256=xAFNBB_UqZFeg5tV2jK-_rGzwEKR9r9oaxxnpAvw3a8,4606
|
86
|
+
unfold/layout.py,sha256=2fPFXDF6kTC9A2liO4P-aeOC3frlbuH7u7d8HLny6ig,1020
|
87
87
|
unfold/mixins/__init__.py,sha256=YlhoDs9Y_DXQ8Ejr3enxuHMS1-Ij9fwukxNwpeOS4Co,190
|
88
88
|
unfold/mixins/action_model_admin.py,sha256=BPajuTGf7zAaZOqIq4shX8VQ3NTxWQpedvG58fmCTjk,12036
|
89
89
|
unfold/mixins/base_model_admin.py,sha256=PR4eqU48yB4CNy9Bjd7fjxbOFiFpZM4etYmBOSaRX_M,4140
|
@@ -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=
|
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=
|
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=
|
124
|
-
unfold/templates/admin/actions.html,sha256=
|
123
|
+
unfold/styles.css,sha256=4jfRd3it5Xllssqjc4xcAItlSAmbsF5tsOBut6cK4m0,21729
|
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=
|
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=
|
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=
|
154
|
-
unfold/templates/registration/password_change_form.html,sha256
|
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=
|
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=
|
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=
|
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,26 +177,26 @@ 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=
|
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
|
184
184
|
unfold/templates/unfold/helpers/display_label.html,sha256=LS9DWzYjHkYLV27sZDwyXlg2sLJ0AlId9FbjnXpsbfg,317
|
185
185
|
unfold/templates/unfold/helpers/edit_inline/tabular_delete.html,sha256=wr8zmSUhKcoxxms6gJsBqBrANFTOXELYUvlr3XjnjnE,931
|
186
186
|
unfold/templates/unfold/helpers/edit_inline/tabular_error.html,sha256=8XGlgUJ47JllmXhwPZDlcl81NzZmvuBIp8FZBWoeu9Q,336
|
187
|
-
unfold/templates/unfold/helpers/edit_inline/tabular_field.html,sha256=
|
187
|
+
unfold/templates/unfold/helpers/edit_inline/tabular_field.html,sha256=QETtgDYirbFBMCRH0sRU8IkODS0fBouA6crZ_K4ufTA,1007
|
188
188
|
unfold/templates/unfold/helpers/edit_inline/tabular_heading.html,sha256=ER8R64wnKOu26WTwP4_Wxt-LRB_zRkXLhheZ_utVvKY,1523
|
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=
|
192
|
+
unfold/templates/unfold/helpers/field.html,sha256=2q2M4dfisKJ9v8jt8gcq-iRf74t6H9W6xg16scZNF70,979
|
193
193
|
unfold/templates/unfold/helpers/field_readonly.html,sha256=4qtXjWE7SA2qZSTYLOv0lT4pQfD0TE34mvWQJY7jhS8,237
|
194
|
-
unfold/templates/unfold/helpers/field_readonly_value.html,sha256=
|
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
|
196
|
-
unfold/templates/unfold/helpers/fieldset_row_checkbox.html,sha256=
|
197
|
-
unfold/templates/unfold/helpers/fieldset_row_field.html,sha256=
|
196
|
+
unfold/templates/unfold/helpers/fieldset_row_checkbox.html,sha256=z4aRab--zJS2PC0jfKPez85IptKGRrqgkPpwW6_IKoo,1467
|
197
|
+
unfold/templates/unfold/helpers/fieldset_row_field.html,sha256=cqLT1fHsCCszOHxvYlDFDTAd-6RRoOjdqfdBdhFgHOo,647
|
198
198
|
unfold/templates/unfold/helpers/fieldsets_tabs.html,sha256=NRmkr_vWnEyIFZ1xLpJf_VW1H3xcDlIhMFBuElp3dIo,1468
|
199
|
-
unfold/templates/unfold/helpers/form_errors.html,sha256=
|
199
|
+
unfold/templates/unfold/helpers/form_errors.html,sha256=mrv2_J7RPcLfVtoN1UHh3rfUyOSZpHl67wk1UGqtPcY,266
|
200
200
|
unfold/templates/unfold/helpers/form_label.html,sha256=7FfaXfviQmqKpsA1E7NSwM8rJiMNLl9e73XQram0Pfs,249
|
201
201
|
unfold/templates/unfold/helpers/header.html,sha256=hTLE7_1VCCp-XqmU4xBrFA4Rtb0-8q-I7goP1sOGKg0,1123
|
202
202
|
unfold/templates/unfold/helpers/header_back_button.html,sha256=lNZcYZzQRZdNSI70UrxJ-pq7xnxifziZXtSK1FoPy_U,416
|
@@ -206,12 +206,12 @@ unfold/templates/unfold/helpers/label.html,sha256=DRs0B08SmIvNY0QcFy78xDiI0hAKyf
|
|
206
206
|
unfold/templates/unfold/helpers/language_switch.html,sha256=Y3VxZW0JhqBImLQf2PY11gA_J1CWhbo5LouxoNgzawU,1516
|
207
207
|
unfold/templates/unfold/helpers/messages/debug.html,sha256=OIWKZp04zxWPmVaKZaEtzrikZq1kVruncYRKiKrHWds,153
|
208
208
|
unfold/templates/unfold/helpers/messages/error.html,sha256=16-4bslrpgXR1fTk8bmRUItIbnQcU5XjDgI1xesoKcc,600
|
209
|
-
unfold/templates/unfold/helpers/messages/errornote.html,sha256=
|
209
|
+
unfold/templates/unfold/helpers/messages/errornote.html,sha256=3RVj4BIdft3yEUOdzmli0QPQ_l9hUAOTpHIfL4ZOpMg,356
|
210
210
|
unfold/templates/unfold/helpers/messages/info.html,sha256=4SCFtg3p6F33ZHJhYoIm2VVO5UPdW0ef04mTTqIdcD0,153
|
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=
|
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
|
@@ -234,16 +234,17 @@ unfold/templates/unfold/helpers/userlinks.html,sha256=oZqiwCxG_zRecAbzYrr8_hQvkn
|
|
234
234
|
unfold/templates/unfold/helpers/welcomemsg.html,sha256=Ickay1zuj2A6SE9WmEfFqSKvzmrm_nAH6mJz5_JEQuY,1935
|
235
235
|
unfold/templates/unfold/layouts/base.html,sha256=e9T-vuPvrySHf23LLwRuTQXUg0Q4x-6gmT_yXghqc-I,278
|
236
236
|
unfold/templates/unfold/layouts/base_simple.html,sha256=qUZ9YM24UHgWbmTl61zgN4_ty49P1FZJQ2siNbwnFnQ,1244
|
237
|
-
unfold/templates/unfold/layouts/skeleton.html,sha256=
|
237
|
+
unfold/templates/unfold/layouts/skeleton.html,sha256=2AWjJx6TxpYbXldwrXRbtyp9XTpAu6O0U_zcJtfYfWs,4684
|
238
238
|
unfold/templates/unfold/templatetags/preserve_changelist_filters.html,sha256=sx2jUhogNY4emBhY8PqxQ6mXifbXQb_IQI9Hd0boJI0,111
|
239
|
-
unfold/templates/unfold/widgets/clearable_file_input.html,sha256=
|
240
|
-
unfold/templates/unfold/widgets/clearable_file_input_small.html,sha256=
|
239
|
+
unfold/templates/unfold/widgets/clearable_file_input.html,sha256=8dXZnc6z2D2K08hqHsQwR5UJffcIRnmYBT02zmCOr9A,2191
|
240
|
+
unfold/templates/unfold/widgets/clearable_file_input_small.html,sha256=zhnaDz72mJgMrq-nCPCMuR5tEJaFVfJyOJUAzR6tQWc,2624
|
241
241
|
unfold/templates/unfold/widgets/date.html,sha256=ih9wj8koTaHb9s1NGUmyN9rHvSAmqCMbti9ONDOIujg,122
|
242
242
|
unfold/templates/unfold/widgets/foreign_key_raw_id.html,sha256=4r7ha4I9vMp9Ls7WIbWxF1xuLGLWli7gIZoZAH3Bcyg,1114
|
243
243
|
unfold/templates/unfold/widgets/radio.html,sha256=7Mgc92mMwJdVLjCxoGj5lo76KNaN5dKKktV3vzmbeqA,652
|
244
244
|
unfold/templates/unfold/widgets/radio_option.html,sha256=wVg6zIB0O44vwBgQCCphPuCXeh-gaDg6ed-0gcf5kg4,324
|
245
245
|
unfold/templates/unfold/widgets/range.html,sha256=Zhfj2VTusS3nZjOYR7slcjk1JtFK0psZbaSCw6TDY1I,294
|
246
246
|
unfold/templates/unfold/widgets/related_widget_wrapper.html,sha256=8poy8kZRGPqmY4gSXkEZt7vevBomrKoe2Lg5zsjpwiU,3919
|
247
|
+
unfold/templates/unfold/widgets/select.html,sha256=Qx1YUMj2Yq43DaAbDeRcQv-9M8jlIV00NF6970axb7Y,708
|
247
248
|
unfold/templates/unfold/widgets/split_datetime.html,sha256=Hfv2PoHxPmV_21DmBFmMcR4WVP9vTV9SrfjVdliRci8,1074
|
248
249
|
unfold/templates/unfold/widgets/split_datetime_vertical.html,sha256=39lZsRyRcKr8DIcy9oL39zC8nAHZTHwW6gyTYOKePrQ,806
|
249
250
|
unfold/templates/unfold/widgets/split_money.html,sha256=AFLUBmzGbY-RXgsfz7gaDxVRhplaIPhXjg_hWYo9xcY,352
|
@@ -252,32 +253,35 @@ unfold/templates/unfold/widgets/time.html,sha256=ih9wj8koTaHb9s1NGUmyN9rHvSAmqCM
|
|
252
253
|
unfold/templates/unfold/widgets/url.html,sha256=IRLgW44VTKN7UrSWeywJwaxQhfG5jhhXuT-KTadKX58,304
|
253
254
|
unfold/templates/unfold_crispy/display_form.html,sha256=tGyr8hvMlnKkm2ILbVj0enj6IrjtqiKo6nO9Z-zHE2Q,270
|
254
255
|
unfold/templates/unfold_crispy/errors.html,sha256=bzTXuZh_UkQLb4sPaa0En5Uopveoe573TaEOM9OQVcw,132
|
255
|
-
unfold/templates/unfold_crispy/
|
256
|
-
unfold/templates/unfold_crispy/
|
256
|
+
unfold/templates/unfold_crispy/errors_formset.html,sha256=D52cx_PmIF9KSTO8WmQu0m2atpDfLIt79SPKz9LmjSE,136
|
257
|
+
unfold/templates/unfold_crispy/field.html,sha256=K8B4K28oMI914QiD_21g6NO_86_9T66t7Amxomja12c,1681
|
258
|
+
unfold/templates/unfold_crispy/inputs.html,sha256=6aMXsUY26q_JcIVYgd6X4lwbwbagWj68KHyAYk_fCN4,238
|
257
259
|
unfold/templates/unfold_crispy/layout/attrs.html,sha256=LsLlfKenzHKl6n25m4Ers2NepLSA_RBy9AqezKZ7rH8,173
|
258
260
|
unfold/templates/unfold_crispy/layout/baseinput.html,sha256=GjMxXoqpnxCPkPC1E3v_crzlxDb_hHMf_UgJYfqSsYE,440
|
259
261
|
unfold/templates/unfold_crispy/layout/button.html,sha256=evlO80en9FkbW3UayLPTNUZXAYvgr3slSAsGPKXs96M,67
|
260
262
|
unfold/templates/unfold_crispy/layout/buttonholder.html,sha256=ruHqViROk7nh4luckA8-mcfmnYBqsVM85e8j0rOi3cU,415
|
261
|
-
unfold/templates/unfold_crispy/layout/checkbox.html,sha256=
|
263
|
+
unfold/templates/unfold_crispy/layout/checkbox.html,sha256=V1YGDcYfn4spUHx6M5ux8fzfY7vrWCPCO2UfqFyAKos,769
|
262
264
|
unfold/templates/unfold_crispy/layout/column.html,sha256=Bob4xRcbJOHScDjSjLMRIMNf4lonNmm8F_JOm2azTik,172
|
263
265
|
unfold/templates/unfold_crispy/layout/div.html,sha256=RE9qQ2w2I2zpi7Z7xzVmVO03UXq0yZvMw-W7rVJkEdw,174
|
264
|
-
unfold/templates/unfold_crispy/layout/field_errors.html,sha256=
|
265
|
-
unfold/templates/unfold_crispy/layout/fieldset.html,sha256=
|
266
|
+
unfold/templates/unfold_crispy/layout/field_errors.html,sha256=N0eNJo4OvYzFHPD6vX2gSZWabm46W1GP011sd_dua1I,291
|
267
|
+
unfold/templates/unfold_crispy/layout/fieldset.html,sha256=batc1TDIHvtzX9ZchvSyH3r3q9s7bgr7DpxEfnwvvjk,601
|
266
268
|
unfold/templates/unfold_crispy/layout/help_text.html,sha256=FY0UQv5FsoOFhrqvbILEfZE78Hj30r73YHCtg_MWNeY,207
|
267
269
|
unfold/templates/unfold_crispy/layout/help_text_and_errors.html,sha256=Um14wIg0FHthNM0mKE9VdptTrC-lTTcrDUO-UbbXxhY,108
|
270
|
+
unfold/templates/unfold_crispy/layout/hr.html,sha256=_u0V0lIdK3PLREGspx3zywhUQHcFeY7BuMUbaLyN1WU,321
|
268
271
|
unfold/templates/unfold_crispy/layout/radio_checkbox_select.html,sha256=pUlHC6j-fH62fAMiAZW-4BWXGD0RocHOKCmLtHN9pP8,997
|
269
272
|
unfold/templates/unfold_crispy/layout/row.html,sha256=MgGCI9s2mEn8C6xc78fb2Y4BsW6sbsKvgEd6aVRlFsg,184
|
270
|
-
unfold/templates/unfold_crispy/layout/table_inline_formset.html,sha256=
|
273
|
+
unfold/templates/unfold_crispy/layout/table_inline_formset.html,sha256=6c0C5jZYGuQQoJsd_mu0aHs-Jq7OzzFbUTTqyAniYB4,4705
|
271
274
|
unfold/templates/unfold_crispy/uni_form.html,sha256=l9UNCUrIycgJ0p_B6qhtO_YxdARy3aq8qYY5h5BheSo,312
|
272
275
|
unfold/templates/unfold_crispy/whole_uni_form.html,sha256=ufXRKCIGqkqKFOsh166rpKUnHpFMyBV4eYUCRhs3iws,475
|
276
|
+
unfold/templates/unfold_crispy/whole_uni_formset.html,sha256=CYksfG2hRUdi5n691KW2ih-FfBxpOU4qVBfbOvcu1zs,873
|
273
277
|
unfold/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
274
|
-
unfold/templatetags/unfold.py,sha256=
|
278
|
+
unfold/templatetags/unfold.py,sha256=ht7dnFDANrzly8guUMES-PRR4S5e82I8fuWMD0bDieg,17297
|
275
279
|
unfold/templatetags/unfold_list.py,sha256=ayShOYEXcV3o7wKt3t2aFTWvg62Mb-WGlxjYVGgk3a0,14344
|
276
280
|
unfold/typing.py,sha256=i7LM2LiwYTAjT5-OLDUPVn5b9X-DMmHnjlZG2toWwSE,692
|
277
281
|
unfold/utils.py,sha256=SJikRuAuJN0bE9rfzUujZwycTRrzQm14Hk0zB0EwivU,6164
|
278
282
|
unfold/views.py,sha256=FuYnMrlg6SegLUDDN6An__yZj8rchD_iBK8myieYhkA,1492
|
279
|
-
unfold/widgets.py,sha256=
|
280
|
-
django_unfold-0.
|
281
|
-
django_unfold-0.
|
282
|
-
django_unfold-0.
|
283
|
-
django_unfold-0.
|
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-
|
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
|
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/forms.py
CHANGED
@@ -22,11 +22,12 @@ from django.http import HttpRequest
|
|
22
22
|
from django.utils.safestring import mark_safe
|
23
23
|
from django.utils.translation import gettext_lazy as _
|
24
24
|
|
25
|
-
from .widgets import (
|
25
|
+
from unfold.widgets import (
|
26
26
|
BASE_INPUT_CLASSES,
|
27
27
|
INPUT_CLASSES,
|
28
28
|
UnfoldAdminPasswordInput,
|
29
29
|
UnfoldAdminRadioSelectWidget,
|
30
|
+
UnfoldAdminSelectWidget,
|
30
31
|
)
|
31
32
|
|
32
33
|
|
@@ -37,7 +38,7 @@ class UnfoldReadOnlyPasswordHashWidget(ReadOnlyPasswordHashWidget):
|
|
37
38
|
class ActionForm(forms.Form):
|
38
39
|
action = forms.ChoiceField(
|
39
40
|
label="",
|
40
|
-
widget=
|
41
|
+
widget=UnfoldAdminSelectWidget(
|
41
42
|
{
|
42
43
|
"class": " ".join(
|
43
44
|
[
|
unfold/layout.py
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
from crispy_forms.layout import BaseInput
|
1
|
+
from crispy_forms.layout import BaseInput, LayoutObject
|
2
|
+
from crispy_forms.utils import TEMPLATE_PACK
|
3
|
+
from django.template.loader import render_to_string
|
2
4
|
|
3
5
|
from unfold.widgets import BUTTON_CLASSES
|
4
6
|
|
@@ -21,3 +23,19 @@ class Submit(ButtonClassesMixin, BaseInput):
|
|
21
23
|
|
22
24
|
class Button(ButtonClassesMixin, BaseInput):
|
23
25
|
input_type = "button"
|
26
|
+
|
27
|
+
|
28
|
+
class Hr(LayoutObject):
|
29
|
+
template = "unfold_crispy/layout/hr.html"
|
30
|
+
|
31
|
+
def __init__(self, title=None, *args, **kwargs):
|
32
|
+
self.title = title
|
33
|
+
super().__init__(*args, **kwargs)
|
34
|
+
|
35
|
+
def render(self, form, context, template_pack=TEMPLATE_PACK, **kwargs):
|
36
|
+
return render_to_string(
|
37
|
+
self.template,
|
38
|
+
{
|
39
|
+
"title": self.title,
|
40
|
+
},
|
41
|
+
)
|
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
|
-
|
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
|
-
|
257
|
-
for tab in tabs:
|
258
|
-
has_primary_link = False
|
259
|
-
has_tab_link_active = False
|
249
|
+
return results
|
260
250
|
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
251
|
+
def _get_navigation_items(
|
252
|
+
self, request: HttpRequest, items: list[dict], tabs: list[dict] = None
|
253
|
+
) -> list:
|
254
|
+
allowed_items = []
|
265
255
|
|
266
|
-
|
267
|
-
|
268
|
-
):
|
269
|
-
has_tab_link_active = True
|
270
|
-
break
|
256
|
+
for item in items:
|
257
|
+
link = item.get("link")
|
271
258
|
|
272
|
-
|
273
|
-
|
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
|
-
|
276
|
-
|
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
|
-
|
279
|
-
|
280
|
-
|
281
|
-
)
|
274
|
+
# Link callback
|
275
|
+
if isinstance(link, Callable):
|
276
|
+
item["link_callback"] = lazy(link)(request)
|
282
277
|
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
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
|
-
|
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
|
-
|
291
|
+
# Process nested items
|
292
|
+
if "items" in item:
|
293
|
+
item["items"] = self._get_navigation_items(request, item["items"])
|
294
294
|
|
295
|
-
|
295
|
+
allowed_items.append(item)
|
296
296
|
|
297
|
-
return
|
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
|
|