django-unfold 0.60.0__tar.gz → 0.62.0__tar.gz

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 (310) hide show
  1. {django_unfold-0.60.0 → django_unfold-0.62.0}/PKG-INFO +15 -6
  2. {django_unfold-0.60.0 → django_unfold-0.62.0}/README.md +14 -5
  3. {django_unfold-0.60.0 → django_unfold-0.62.0}/pyproject.toml +1 -1
  4. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/admin.py +1 -1
  5. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/widgets.py +12 -1
  6. django_unfold-0.62.0/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import.html +5 -0
  7. django_unfold-0.62.0/src/unfold/contrib/simple_history/templates/simple_history/submit_line.html +23 -0
  8. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/forms.py +2 -2
  9. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/mixins/base_model_admin.py +7 -2
  10. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/sites.py +15 -2
  11. django_unfold-0.62.0/src/unfold/static/unfold/css/styles.css +2 -0
  12. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/app.js +61 -0
  13. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/styles.css +5 -8
  14. django_unfold-0.62.0/src/unfold/templates/admin/auth/user/add_form.html +8 -0
  15. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/base.html +1 -1
  16. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/change_form.html +8 -6
  17. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/change_list.html +4 -2
  18. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/change_list_results.html +3 -3
  19. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/edit_inline/stacked.html +10 -4
  20. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/edit_inline/tabular.html +4 -4
  21. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/includes/fieldset.html +9 -3
  22. django_unfold-0.62.0/src/unfold/templates/admin/search_form.html +30 -0
  23. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/submit_line.html +1 -1
  24. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/card.html +4 -4
  25. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/add_link.html +3 -1
  26. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/fieldsets_tabs.html +3 -3
  27. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/help_text.html +1 -1
  28. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/messages.html +4 -4
  29. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/navigation_header.html +2 -2
  30. django_unfold-0.62.0/src/unfold/templates/unfold/helpers/pagination.html +7 -0
  31. django_unfold-0.62.0/src/unfold/templates/unfold/helpers/popup_header.html +27 -0
  32. django_unfold-0.62.0/src/unfold/templates/unfold/helpers/search.html +30 -0
  33. django_unfold-0.62.0/src/unfold/templates/unfold/helpers/search_results.html +14 -0
  34. django_unfold-0.62.0/src/unfold/templates/unfold/helpers/shortcut.html +3 -0
  35. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/site_branding.html +2 -2
  36. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/tab_action.html +4 -3
  37. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/tab_actions.html +1 -1
  38. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/tab_list.html +1 -1
  39. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/text.html +1 -1
  40. django_unfold-0.62.0/src/unfold/templates/unfold_crispy/field.html +25 -0
  41. django_unfold-0.62.0/src/unfold/templates/unfold_crispy/layout/checkbox.html +35 -0
  42. django_unfold-0.62.0/src/unfold/templates/unfold_crispy/layout/fieldset.html +11 -0
  43. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templatetags/unfold.py +3 -4
  44. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templatetags/unfold_list.py +4 -1
  45. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/widgets.py +2 -1
  46. django_unfold-0.60.0/src/unfold/contrib/simple_history/templates/simple_history/submit_line.html +0 -25
  47. django_unfold-0.60.0/src/unfold/static/unfold/css/styles.css +0 -2
  48. django_unfold-0.60.0/src/unfold/templates/admin/auth/user/add_form.html +0 -12
  49. django_unfold-0.60.0/src/unfold/templates/admin/search_form.html +0 -21
  50. django_unfold-0.60.0/src/unfold/templates/unfold/helpers/pagination.html +0 -7
  51. django_unfold-0.60.0/src/unfold/templates/unfold/helpers/search.html +0 -26
  52. django_unfold-0.60.0/src/unfold/templates/unfold/helpers/search_results.html +0 -13
  53. django_unfold-0.60.0/src/unfold/templates/unfold_crispy/field.html +0 -23
  54. django_unfold-0.60.0/src/unfold/templates/unfold_crispy/layout/checkbox.html +0 -19
  55. django_unfold-0.60.0/src/unfold/templates/unfold_crispy/layout/fieldset.html +0 -11
  56. {django_unfold-0.60.0 → django_unfold-0.62.0}/LICENSE.md +0 -0
  57. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/__init__.py +0 -0
  58. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/apps.py +0 -0
  59. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/checks.py +0 -0
  60. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/components.py +0 -0
  61. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/__init__.py +0 -0
  62. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/__init__.py +0 -0
  63. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/admin/__init__.py +0 -0
  64. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/admin/autocomplete_filters.py +0 -0
  65. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/admin/choice_filters.py +0 -0
  66. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/admin/datetime_filters.py +0 -0
  67. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/admin/dropdown_filters.py +0 -0
  68. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/admin/mixins.py +0 -0
  69. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/admin/numeric_filters.py +0 -0
  70. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/admin/text_filters.py +0 -0
  71. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/apps.py +0 -0
  72. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/forms.py +0 -0
  73. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/static/unfold/filters/css/nouislider/LICENSE +0 -0
  74. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/static/unfold/filters/css/nouislider/nouislider.min.css +0 -0
  75. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/static/unfold/filters/js/DateTimeShortcuts.js +0 -0
  76. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/static/unfold/filters/js/admin-numeric-filter.js +0 -0
  77. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/static/unfold/filters/js/nouislider/LICENSE +0 -0
  78. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/static/unfold/filters/js/nouislider/nouislider.min.js +0 -0
  79. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/static/unfold/filters/js/wnumb/LICENSE +0 -0
  80. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/static/unfold/filters/js/wnumb/wNumb.min.js +0 -0
  81. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_date_range.html +0 -0
  82. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html +0 -0
  83. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_field.html +0 -0
  84. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html +0 -0
  85. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html +0 -0
  86. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html +0 -0
  87. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/__init__.py +0 -0
  88. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/apps.py +0 -0
  89. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/static/unfold/forms/css/trix/LICENSE +0 -0
  90. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/static/unfold/forms/css/trix/trix.css +0 -0
  91. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix/LICENSE +0 -0
  92. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix/trix.js +0 -0
  93. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix.config.js +0 -0
  94. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/templates/unfold/forms/array.html +0 -0
  95. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html +0 -0
  96. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/forms/templates/unfold/forms/wysiwyg.html +0 -0
  97. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/__init__.py +0 -0
  98. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/apps.py +0 -0
  99. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/change_form.html +0 -0
  100. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/field.html +0 -0
  101. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html +0 -0
  102. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html +0 -0
  103. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html +0 -0
  104. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/templates/unfold/guardian/group_form.html +0 -0
  105. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/guardian/templates/unfold/guardian/user_form.html +0 -0
  106. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/__init__.py +0 -0
  107. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/apps.py +0 -0
  108. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/forms.py +0 -0
  109. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/base.html +0 -0
  110. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_form.html +0 -0
  111. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export.html +0 -0
  112. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export_item.html +0 -0
  113. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_export.html +0 -0
  114. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_item.html +0 -0
  115. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/export.html +0 -0
  116. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/import.html +0 -0
  117. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_confirm.html +0 -0
  118. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_errors.html +0 -0
  119. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_form.html +0 -0
  120. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_preview.html +0 -0
  121. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_validation.html +0 -0
  122. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/import_export/templates/admin/import_export/resource_fields_list.html +0 -0
  123. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/inlines/__init__.py +0 -0
  124. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/inlines/admin.py +0 -0
  125. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/inlines/apps.py +0 -0
  126. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/inlines/checks.py +0 -0
  127. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/inlines/forms.py +0 -0
  128. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/location_field/__init__.py +0 -0
  129. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/location_field/apps.py +0 -0
  130. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/location_field/templates/location_field/map_widget.html +0 -0
  131. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/simple_history/__init__.py +0 -0
  132. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/simple_history/apps.py +0 -0
  133. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history.html +0 -0
  134. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_form.html +0 -0
  135. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_list.html +0 -0
  136. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/dataclasses.py +0 -0
  137. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/decorators.py +0 -0
  138. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/enums.py +0 -0
  139. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/exceptions.py +0 -0
  140. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/fields.py +0 -0
  141. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/layout.py +0 -0
  142. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/mixins/__init__.py +0 -0
  143. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/mixins/action_model_admin.py +0 -0
  144. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/overrides.py +0 -0
  145. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/paginator.py +0 -0
  146. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/sections.py +0 -0
  147. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/settings.py +0 -0
  148. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/admin/js/admin/RelatedObjectLookups.js +0 -0
  149. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/admin/js/inlines.js +0 -0
  150. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/css/simplebar/LICENSE +0 -0
  151. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/css/simplebar/simplebar.css +0 -0
  152. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/inter/Inter-Bold.woff2 +0 -0
  153. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/inter/Inter-Medium.woff2 +0 -0
  154. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/inter/Inter-Regular.woff2 +0 -0
  155. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/inter/Inter-SemiBold.woff2 +0 -0
  156. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/inter/LICENSE +0 -0
  157. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/inter/styles.css +0 -0
  158. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/material-symbols/LICENSE +0 -0
  159. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/material-symbols/Material-Symbols-Outlined.woff2 +0 -0
  160. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/fonts/material-symbols/styles.css +0 -0
  161. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/alpine/LICENSE +0 -0
  162. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/alpine/alpine.anchor.js +0 -0
  163. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/alpine/alpine.js +0 -0
  164. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/alpine/alpine.persist.js +0 -0
  165. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/alpine/alpine.resize.js +0 -0
  166. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/alpine/alpine.sort.js +0 -0
  167. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/chart/LICENSE +0 -0
  168. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/chart/chart.js +0 -0
  169. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/htmx/LICENSE +0 -0
  170. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/htmx/htmx.js +0 -0
  171. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/select2.init.js +0 -0
  172. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/simplebar/LICENSE +0 -0
  173. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/static/unfold/js/simplebar/simplebar.js +0 -0
  174. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/actions.html +0 -0
  175. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/app_index.html +0 -0
  176. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/app_list.html +0 -0
  177. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/auth/user/change_password.html +0 -0
  178. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/base_site.html +0 -0
  179. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/change_form_object_tools.html +0 -0
  180. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/change_list_object_tools.html +0 -0
  181. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/date_hierarchy.html +0 -0
  182. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/delete_confirmation.html +0 -0
  183. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/delete_selected_confirmation.html +0 -0
  184. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/filter.html +0 -0
  185. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/includes/object_delete_summary.html +0 -0
  186. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/index.html +0 -0
  187. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/login.html +0 -0
  188. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/nav_sidebar.html +0 -0
  189. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/object_history.html +0 -0
  190. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/admin/pagination.html +0 -0
  191. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/auth/widgets/read_only_password_hash.html +0 -0
  192. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/registration/logged_out.html +0 -0
  193. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/registration/password_change_done.html +0 -0
  194. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/registration/password_change_form.html +0 -0
  195. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/button.html +0 -0
  196. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/chart/bar.html +0 -0
  197. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/chart/cohort.html +0 -0
  198. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/chart/line.html +0 -0
  199. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/container.html +0 -0
  200. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/flex.html +0 -0
  201. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/icon.html +0 -0
  202. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/navigation.html +0 -0
  203. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/progress.html +0 -0
  204. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/separator.html +0 -0
  205. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/table.html +0 -0
  206. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/text.html +0 -0
  207. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/title.html +0 -0
  208. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/components/tracker.html +0 -0
  209. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/account_links.html +0 -0
  210. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/actions_row.html +0 -0
  211. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/app_list.html +0 -0
  212. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/app_list_default.html +0 -0
  213. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/attrs.html +0 -0
  214. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/boolean.html +0 -0
  215. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/breadcrumb_item.html +0 -0
  216. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/change_list_actions.html +0 -0
  217. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/change_list_filter.html +0 -0
  218. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/change_list_filter_actions.html +0 -0
  219. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/delete_submit_line.html +0 -0
  220. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/display_dropdown.html +0 -0
  221. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/display_header.html +0 -0
  222. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/display_label.html +0 -0
  223. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_delete.html +0 -0
  224. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_error.html +0 -0
  225. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_field.html +0 -0
  226. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_heading.html +0 -0
  227. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_row.html +0 -0
  228. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/edit_inline/tabular_title.html +0 -0
  229. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/empty_results.html +0 -0
  230. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/field.html +0 -0
  231. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/field_readonly.html +0 -0
  232. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/field_readonly_value.html +0 -0
  233. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/fieldset_row.html +0 -0
  234. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/fieldset_row_checkbox.html +0 -0
  235. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/fieldset_row_field.html +0 -0
  236. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/form_errors.html +0 -0
  237. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/form_label.html +0 -0
  238. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/header.html +0 -0
  239. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/header_back_button.html +0 -0
  240. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/history.html +0 -0
  241. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/label.html +0 -0
  242. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/language_form.html +0 -0
  243. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/language_switch.html +0 -0
  244. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/messages/debug.html +0 -0
  245. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/messages/error.html +0 -0
  246. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/messages/errornote.html +0 -0
  247. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/messages/info.html +0 -0
  248. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/messages/success.html +0 -0
  249. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/messages/warning.html +0 -0
  250. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/navigation.html +0 -0
  251. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/pagination_current_item.html +0 -0
  252. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/pagination_default.html +0 -0
  253. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/pagination_ellipsis.html +0 -0
  254. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/pagination_infinite.html +0 -0
  255. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/pagination_inline.html +0 -0
  256. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/site_dropdown.html +0 -0
  257. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/site_icon.html +0 -0
  258. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/site_logo.html +0 -0
  259. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/submit.html +0 -0
  260. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/tab_items.html +0 -0
  261. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/theme_switch.html +0 -0
  262. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/unauthenticated_header.html +0 -0
  263. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/unauthenticated_title.html +0 -0
  264. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/userlinks.html +0 -0
  265. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/helpers/welcomemsg.html +0 -0
  266. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/layouts/base.html +0 -0
  267. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/layouts/base_simple.html +0 -0
  268. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/layouts/skeleton.html +0 -0
  269. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/layouts/unauthenticated.html +0 -0
  270. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/templatetags/preserve_changelist_filters.html +0 -0
  271. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/clearable_file_input.html +0 -0
  272. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/clearable_file_input_small.html +0 -0
  273. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/date.html +0 -0
  274. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/foreign_key_raw_id.html +0 -0
  275. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/radio.html +0 -0
  276. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/radio_option.html +0 -0
  277. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/range.html +0 -0
  278. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/related_widget_wrapper.html +0 -0
  279. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/select.html +0 -0
  280. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/split_datetime.html +0 -0
  281. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/split_datetime_vertical.html +0 -0
  282. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/split_money.html +0 -0
  283. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/textarea.html +0 -0
  284. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/time.html +0 -0
  285. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold/widgets/url.html +0 -0
  286. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/display_form.html +0 -0
  287. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/errors.html +0 -0
  288. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/errors_formset.html +0 -0
  289. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/inputs.html +0 -0
  290. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/attrs.html +0 -0
  291. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/baseinput.html +0 -0
  292. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/button.html +0 -0
  293. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/buttonholder.html +0 -0
  294. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/column.html +0 -0
  295. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/div.html +0 -0
  296. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/field_errors.html +0 -0
  297. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/fieldset_subheader.html +0 -0
  298. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/help_text.html +0 -0
  299. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/help_text_and_errors.html +0 -0
  300. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/hr.html +0 -0
  301. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/radio_checkbox_select.html +0 -0
  302. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/row.html +0 -0
  303. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/layout/table_inline_formset.html +0 -0
  304. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/uni_form.html +0 -0
  305. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/whole_uni_form.html +0 -0
  306. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templates/unfold_crispy/whole_uni_formset.html +0 -0
  307. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/templatetags/__init__.py +0 -0
  308. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/typing.py +0 -0
  309. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/utils.py +0 -0
  310. {django_unfold-0.60.0 → django_unfold-0.62.0}/src/unfold/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-unfold
3
- Version: 0.60.0
3
+ Version: 0.62.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
  ![screenshot](https://github.com/user-attachments/assets/87aaad04-f454-42aa-b9ac-e14d41f189ac)
26
26
 
27
- ## Unfold Django Admin Theme
27
+ ## Unfold - Django Admin Theme
28
28
 
29
29
  [![PyPI - Version](https://img.shields.io/pypi/v/django-unfold.svg?style=for-the-badge)](https://pypi.org/project/django-unfold/)
30
30
  [![Discord](https://img.shields.io/discord/1297493955231088650?style=for-the-badge&logo=discord&logoColor=%23ffffff&color=7289da)](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
- ## Django & Unfold Development Services
43
+ ## Profesional tools & services
44
44
 
45
- Need assistance with implementing Unfold or require custom Django development? Professional consulting and development services are available to help transform your Django admin interface and enhance your web applications. Whether migrating from the native Django admin to Unfold or seeking expert technical guidance, reach out to discuss your project requirements and explore development possibilities. [Get in touch](https://unfoldadmin.com/consulting?utm_medium=github&utm_source=unfold) to learn more about available services.
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
- ## Unfold Studio
47
+ ### Consulting services
48
48
 
49
- Unfold Studio is a theme customizer for Django admin that helps you create a branded interface. You can customize colors, upload your logo, and adjust the style without coding. The tool is currently in development, and [you can join the waitlist](https://unfoldadmin.com/studio/) to be notified when it's available.
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,6 +1,6 @@
1
1
  ![screenshot](https://github.com/user-attachments/assets/87aaad04-f454-42aa-b9ac-e14d41f189ac)
2
2
 
3
- ## Unfold Django Admin Theme
3
+ ## Unfold - Django Admin Theme
4
4
 
5
5
  [![PyPI - Version](https://img.shields.io/pypi/v/django-unfold.svg?style=for-the-badge)](https://pypi.org/project/django-unfold/)
6
6
  [![Discord](https://img.shields.io/discord/1297493955231088650?style=for-the-badge&logo=discord&logoColor=%23ffffff&color=7289da)](https://discord.gg/9sQj9MEbNz)
@@ -16,13 +16,22 @@ Transform your Django admin into a powerful, modern administrative interface wit
16
16
  - **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).
17
17
  - **Discord:** Join our Unfold community on [Discord](https://discord.gg/9sQj9MEbNz).
18
18
 
19
- ## Django & Unfold Development Services
19
+ ## Profesional tools & services
20
20
 
21
- Need assistance with implementing Unfold or require custom Django development? Professional consulting and development services are available to help transform your Django admin interface and enhance your web applications. Whether migrating from the native Django admin to Unfold or seeking expert technical guidance, reach out to discuss your project requirements and explore development possibilities. [Get in touch](https://unfoldadmin.com/consulting?utm_medium=github&utm_source=unfold) to learn more about available services.
21
+ Looking for professional help with your Django or Unfold project? We offer a range of tools and services to support your development process:
22
22
 
23
- ## Unfold Studio
23
+ ### Consulting services
24
24
 
25
- Unfold Studio is a theme customizer for Django admin that helps you create a branded interface. You can customize colors, upload your logo, and adjust the style without coding. The tool is currently in development, and [you can join the waitlist](https://unfoldadmin.com/studio/) to be notified when it's available.
25
+ Professional consulting services for Django applications from architecture and performance optimization to feature development and Unfold integration.
26
+ 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).
27
+
28
+ ### Support package
29
+
30
+ 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).
31
+
32
+ ### Unfold Studio
33
+
34
+ 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).
26
35
 
27
36
  ## Fresh Features & Enhancements
28
37
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-unfold"
3
- version = "0.60.0"
3
+ version = "0.62.0"
4
4
  description = "Modern Django admin theme for seamless interface development"
5
5
  license = "MIT"
6
6
  readme = "README.md"
@@ -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
@@ -33,14 +33,25 @@ WYSIWYG_CLASSES = [
33
33
  class ArrayWidget(MultiWidget):
34
34
  template_name = "unfold/forms/array.html"
35
35
 
36
- def __init__(self, *args: Any, **kwargs: Any) -> None:
36
+ def __init__(
37
+ self,
38
+ widget_class: Optional[type[Widget]] = None,
39
+ *args: Any,
40
+ **kwargs: Any,
41
+ ) -> None:
37
42
  if "choices" in kwargs:
38
43
  self.choices = kwargs["choices"]
39
44
 
45
+ if widget_class is not None:
46
+ self.widget_class = widget_class
47
+
40
48
  widgets = [self.get_widget_instance()]
41
49
  super().__init__(widgets)
42
50
 
43
51
  def get_widget_instance(self) -> Any:
52
+ if hasattr(self, "widget_class"):
53
+ return self.widget_class()
54
+
44
55
  if hasattr(self, "choices"):
45
56
  return UnfoldAdminSelectWidget(choices=self.choices)
46
57
 
@@ -0,0 +1,5 @@
1
+ {% extends "admin/import_export/change_list.html" %}
2
+
3
+ {% block actions-items %}
4
+ {% include "admin/import_export/change_list_import_item.html" %}
5
+ {% endblock %}
@@ -0,0 +1,23 @@
1
+ {% load i18n %}
2
+
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 %}
11
+
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 %}
17
+
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>
21
+ </div>
22
+ </div>
23
+ </div>
@@ -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 | UnfoldAdminField", None, None]:
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, bool]] = None,
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
- kwargs["widget"] = widgets.UnfoldAdminNullBooleanSelectWidget()
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
 
@@ -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
- results.append(app)
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
- results.append(app)
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(