django-unfold 0.33.0__tar.gz → 0.34.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. {django_unfold-0.33.0 → django_unfold-0.34.0}/PKG-INFO +17 -1
  2. {django_unfold-0.33.0 → django_unfold-0.34.0}/README.md +16 -0
  3. {django_unfold-0.33.0 → django_unfold-0.34.0}/pyproject.toml +1 -1
  4. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/admin.py +5 -9
  5. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_date_range.html +1 -1
  6. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html +1 -1
  7. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html +1 -1
  8. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html +1 -1
  9. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html +1 -1
  10. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/unfold/guardian/group_form.html +10 -10
  11. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/unfold/guardian/user_form.html +10 -10
  12. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_confirm.html +1 -1
  13. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_errors.html +3 -3
  14. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_preview.html +6 -6
  15. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_validation.html +8 -8
  16. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_list.html +18 -18
  17. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/fields.py +2 -2
  18. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/forms.py +2 -1
  19. django_unfold-0.34.0/src/unfold/static/unfold/css/styles.css +1 -0
  20. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/styles.css +6 -10
  21. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/actions.html +14 -12
  22. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/app_list.html +3 -5
  23. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_list.html +4 -4
  24. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_list_results.html +4 -4
  25. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/delete_confirmation.html +9 -9
  26. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/delete_selected_confirmation.html +9 -9
  27. django_unfold-0.34.0/src/unfold/templates/admin/edit_inline/stacked.html +92 -0
  28. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/edit_inline/tabular.html +11 -11
  29. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/filter.html +5 -5
  30. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/includes/object_delete_summary.html +2 -2
  31. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/object_history.html +9 -9
  32. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/pagination.html +3 -3
  33. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/submit_line.html +7 -7
  34. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/change_list_filter.html +3 -3
  35. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/progress.html +1 -1
  36. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/table.html +4 -4
  37. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/title.html +1 -1
  38. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/account_links.html +2 -2
  39. django_unfold-0.34.0/src/unfold/templates/unfold/helpers/actions_row.html +21 -0
  40. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/add_link.html +2 -2
  41. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/app_list.html +7 -7
  42. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/app_list_default.html +7 -7
  43. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/breadcrumb_item.html +1 -1
  44. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/display_header.html +4 -2
  45. django_unfold-0.34.0/src/unfold/templates/unfold/helpers/field_readonly_value.html +1 -0
  46. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/fieldset_row.html +1 -1
  47. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/fieldsets_tabs.html +1 -1
  48. django_unfold-0.34.0/src/unfold/templates/unfold/helpers/help_text.html +5 -0
  49. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/history.html +3 -3
  50. django_unfold-0.34.0/src/unfold/templates/unfold/helpers/label.html +16 -0
  51. django_unfold-0.34.0/src/unfold/templates/unfold/helpers/messages.html +20 -0
  52. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/navigation.html +1 -1
  53. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/search_results.html +2 -2
  54. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/site_icon.html +1 -1
  55. django_unfold-0.34.0/src/unfold/templates/unfold/helpers/tab_action.html +5 -0
  56. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/tab_list.html +9 -5
  57. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/theme_switch.html +2 -2
  58. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/welcomemsg.html +5 -3
  59. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/layouts/skeleton.html +2 -2
  60. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/clearable_file_input.html +2 -2
  61. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/clearable_file_input_small.html +2 -2
  62. django_unfold-0.34.0/src/unfold/templates/unfold/widgets/foreign_key_raw_id.html +19 -0
  63. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/radio_option.html +1 -1
  64. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/split_datetime.html +2 -2
  65. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/split_datetime_vertical.html +2 -2
  66. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templatetags/unfold_list.py +6 -7
  67. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/widgets.py +10 -5
  68. django_unfold-0.33.0/src/unfold/static/unfold/css/styles.css +0 -1
  69. django_unfold-0.33.0/src/unfold/templates/admin/edit_inline/stacked.html +0 -86
  70. django_unfold-0.33.0/src/unfold/templates/unfold/helpers/actions_row.html +0 -19
  71. django_unfold-0.33.0/src/unfold/templates/unfold/helpers/field_readonly_value.html +0 -1
  72. django_unfold-0.33.0/src/unfold/templates/unfold/helpers/help_text.html +0 -5
  73. django_unfold-0.33.0/src/unfold/templates/unfold/helpers/label.html +0 -16
  74. django_unfold-0.33.0/src/unfold/templates/unfold/helpers/messages.html +0 -9
  75. django_unfold-0.33.0/src/unfold/templates/unfold/helpers/tab_action.html +0 -5
  76. django_unfold-0.33.0/src/unfold/templates/unfold/widgets/foreign_key_raw_id.html +0 -15
  77. {django_unfold-0.33.0 → django_unfold-0.34.0}/LICENSE.md +0 -0
  78. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/__init__.py +0 -0
  79. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/apps.py +0 -0
  80. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/checks.py +0 -0
  81. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/__init__.py +0 -0
  82. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/__init__.py +0 -0
  83. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/admin.py +0 -0
  84. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/apps.py +0 -0
  85. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/forms.py +0 -0
  86. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/css/nouislider.min.css +0 -0
  87. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/js/DateTimeShortcuts.js +0 -0
  88. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/js/admin-numeric-filter.js +0 -0
  89. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/js/nouislider.min.js +0 -0
  90. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/static/unfold/filters/js/wNumb.min.js +0 -0
  91. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/filters/templates/unfold/filters/filters_field.html +0 -0
  92. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/__init__.py +0 -0
  93. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/apps.py +0 -0
  94. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/static/unfold/forms/css/trix.css +0 -0
  95. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix.config.js +0 -0
  96. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/static/unfold/forms/js/trix.js +0 -0
  97. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/templates/unfold/forms/array.html +0 -0
  98. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html +0 -0
  99. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/templates/unfold/forms/wysiwyg.html +0 -0
  100. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/forms/widgets.py +0 -0
  101. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/__init__.py +0 -0
  102. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/apps.py +0 -0
  103. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/change_form.html +0 -0
  104. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/field.html +0 -0
  105. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html +0 -0
  106. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html +0 -0
  107. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html +0 -0
  108. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/__init__.py +0 -0
  109. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/apps.py +0 -0
  110. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/forms.py +0 -0
  111. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/base.html +0 -0
  112. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_form.html +0 -0
  113. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export.html +0 -0
  114. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_export_item.html +0 -0
  115. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_export.html +0 -0
  116. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/change_list_import_item.html +0 -0
  117. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/export.html +0 -0
  118. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import.html +0 -0
  119. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/import_form.html +0 -0
  120. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/import_export/templates/admin/import_export/resource_fields_list.html +0 -0
  121. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/__init__.py +0 -0
  122. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/admin.py +0 -0
  123. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/apps.py +0 -0
  124. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/checks.py +0 -0
  125. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/inlines/forms.py +0 -0
  126. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/__init__.py +0 -0
  127. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/apps.py +0 -0
  128. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history.html +0 -0
  129. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/templates/simple_history/object_history_form.html +0 -0
  130. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/contrib/simple_history/templates/simple_history/submit_line.html +0 -0
  131. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/dataclasses.py +0 -0
  132. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/decorators.py +0 -0
  133. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/exceptions.py +0 -0
  134. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/settings.py +0 -0
  135. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/sites.py +0 -0
  136. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/css/simplebar.css +0 -0
  137. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/Inter-Bold.woff2 +0 -0
  138. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/Inter-Medium.woff2 +0 -0
  139. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/Inter-Regular.woff2 +0 -0
  140. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/Inter-SemiBold.woff2 +0 -0
  141. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/inter/styles.css +0 -0
  142. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/material-symbols/Material-Symbols-Outlined.woff2 +0 -0
  143. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/fonts/material-symbols/styles.css +0 -0
  144. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/alpine.anchor.js +0 -0
  145. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/alpine.js +0 -0
  146. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/alpine.persist.js +0 -0
  147. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/app.js +0 -0
  148. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/chart.js +0 -0
  149. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/htmx.js +0 -0
  150. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/static/unfold/js/simplebar.js +0 -0
  151. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/app_index.html +0 -0
  152. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/auth/user/add_form.html +0 -0
  153. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/auth/user/change_password.html +0 -0
  154. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/base.html +0 -0
  155. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/base_site.html +0 -0
  156. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_form.html +0 -0
  157. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_form_object_tools.html +0 -0
  158. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/change_list_object_tools.html +0 -0
  159. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/date_hierarchy.html +0 -0
  160. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/includes/fieldset.html +0 -0
  161. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/index.html +0 -0
  162. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/login.html +0 -0
  163. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/nav_sidebar.html +0 -0
  164. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/admin/search_form.html +0 -0
  165. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/auth/widgets/read_only_password_hash.html +0 -0
  166. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/registration/logged_out.html +0 -0
  167. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/registration/password_change_done.html +0 -0
  168. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/registration/password_change_form.html +0 -0
  169. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/button.html +0 -0
  170. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/card.html +0 -0
  171. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/chart/bar.html +0 -0
  172. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/chart/line.html +0 -0
  173. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/container.html +0 -0
  174. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/flex.html +0 -0
  175. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/icon.html +0 -0
  176. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/navigation.html +0 -0
  177. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/separator.html +0 -0
  178. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/components/text.html +0 -0
  179. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/attrs.html +0 -0
  180. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/boolean.html +0 -0
  181. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/display_label.html +0 -0
  182. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/field.html +0 -0
  183. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/field_readonly.html +0 -0
  184. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/form_errors.html +0 -0
  185. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/form_label.html +0 -0
  186. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/header.html +0 -0
  187. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/messages/error.html +0 -0
  188. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/messages/errornote.html +0 -0
  189. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/messages/info.html +0 -0
  190. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/pagination_current_item.html +0 -0
  191. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/pagination_ellipsis.html +0 -0
  192. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/search.html +0 -0
  193. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/site_logo.html +0 -0
  194. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/submit.html +0 -0
  195. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/helpers/userlinks.html +0 -0
  196. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/layouts/base.html +0 -0
  197. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/layouts/base_simple.html +0 -0
  198. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/date.html +0 -0
  199. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/radio.html +0 -0
  200. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/range.html +0 -0
  201. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/related_widget_wrapper.html +0 -0
  202. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/split_money.html +0 -0
  203. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/textarea.html +0 -0
  204. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/textarea_expandable.html +0 -0
  205. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templates/unfold/widgets/time.html +0 -0
  206. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templatetags/__init__.py +0 -0
  207. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/templatetags/unfold.py +0 -0
  208. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/typing.py +0 -0
  209. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/utils.py +0 -0
  210. {django_unfold-0.33.0 → django_unfold-0.34.0}/src/unfold/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-unfold
3
- Version: 0.33.0
3
+ Version: 0.34.0
4
4
  Summary: Modern Django admin theme for seamless interface development
5
5
  Home-page: https://unfoldadmin.com
6
6
  License: MIT
@@ -111,6 +111,7 @@ Did you decide to start using Unfold but you don't have time to make the switch
111
111
  - [Pre-commit](#pre-commit)
112
112
  - [Poetry configuration](#poetry-configuration)
113
113
  - [Compiling Tailwind](#compiling-tailwind)
114
+ - [Design system](#design-system)
114
115
  - [Using VS Code with containers](#using-vs-code-with-containers)
115
116
  - [Development server](#development-server)
116
117
  - [Compiling Tailwind in devcontainer](#compiling-tailwind-in-devcontainer)
@@ -374,6 +375,9 @@ class CustomAdminClass(ModelAdmin):
374
375
  # Position horizontal scrollbar in changelist at the top
375
376
  list_horizontal_scrollbar_top = False
376
377
 
378
+ # Dsable select all action in changelist
379
+ list_disable_select_all = False
380
+
377
381
  # Custom actions
378
382
  actions_list = [] # Displayed above the results list
379
383
  actions_row = [] # Displayed in a table row in results list
@@ -1402,6 +1406,17 @@ Some components like datepickers, calendars or selectors in admin was not possib
1402
1406
 
1403
1407
  **Note:** most of the custom styles located in style.css are created via `@apply some-tailwind-class;` as is not possible to manually add CSS class to element which are for example created via jQuery.
1404
1408
 
1409
+
1410
+ ### Design system
1411
+
1412
+ | Component | Classes |
1413
+ | --------------------------------- | ------------------------------------------------------ |
1414
+ | Regular text | text-gray-600 dark:text-gray-300 |
1415
+ | Hover regular text | text-gray-700 dark:text-gray-200 |
1416
+ | Headings | font-semibold text-gray-900 dark:text-gray-100 |
1417
+ | Icon | text-gray-400 dark:text-gray-500 |
1418
+ | Hover icon | hover:text-gray-500 dark:hover:text-gray-400 |
1419
+
1405
1420
  ### Using VS Code with containers
1406
1421
 
1407
1422
  Unfold already contains prepared support for VS Code development. After cloning the project locally, open the main folder in VS Code (in terminal `code .`). Immediately, you would see a message from VS Code **Folder contains a Dev Container configuration file. Reopen folder to develop in a container** which will inform you that the support for containers is prepared. Confirm the message by clicking on **Reopen in Container**. If the message is not there, you can still manually open the project in a container by running the command **Dev Containers: Reopen in Container**.
@@ -1424,4 +1439,5 @@ The container has already a node preinstalled so it is possible to compile a new
1424
1439
  - [Material Icons](https://fonts.google.com/icons) - Icons from Google Fonts
1425
1440
  - [Trix](https://trix-editor.org/) - WYSIWYG editor
1426
1441
  - [Alpine.js](https://alpinejs.dev/) - JavaScript interactions
1442
+ - [Chart.js](https://github.com/chartjs/Chart.js/) - Chart components
1427
1443
 
@@ -87,6 +87,7 @@ Did you decide to start using Unfold but you don't have time to make the switch
87
87
  - [Pre-commit](#pre-commit)
88
88
  - [Poetry configuration](#poetry-configuration)
89
89
  - [Compiling Tailwind](#compiling-tailwind)
90
+ - [Design system](#design-system)
90
91
  - [Using VS Code with containers](#using-vs-code-with-containers)
91
92
  - [Development server](#development-server)
92
93
  - [Compiling Tailwind in devcontainer](#compiling-tailwind-in-devcontainer)
@@ -350,6 +351,9 @@ class CustomAdminClass(ModelAdmin):
350
351
  # Position horizontal scrollbar in changelist at the top
351
352
  list_horizontal_scrollbar_top = False
352
353
 
354
+ # Dsable select all action in changelist
355
+ list_disable_select_all = False
356
+
353
357
  # Custom actions
354
358
  actions_list = [] # Displayed above the results list
355
359
  actions_row = [] # Displayed in a table row in results list
@@ -1378,6 +1382,17 @@ Some components like datepickers, calendars or selectors in admin was not possib
1378
1382
 
1379
1383
  **Note:** most of the custom styles located in style.css are created via `@apply some-tailwind-class;` as is not possible to manually add CSS class to element which are for example created via jQuery.
1380
1384
 
1385
+
1386
+ ### Design system
1387
+
1388
+ | Component | Classes |
1389
+ | --------------------------------- | ------------------------------------------------------ |
1390
+ | Regular text | text-gray-600 dark:text-gray-300 |
1391
+ | Hover regular text | text-gray-700 dark:text-gray-200 |
1392
+ | Headings | font-semibold text-gray-900 dark:text-gray-100 |
1393
+ | Icon | text-gray-400 dark:text-gray-500 |
1394
+ | Hover icon | hover:text-gray-500 dark:hover:text-gray-400 |
1395
+
1381
1396
  ### Using VS Code with containers
1382
1397
 
1383
1398
  Unfold already contains prepared support for VS Code development. After cloning the project locally, open the main folder in VS Code (in terminal `code .`). Immediately, you would see a message from VS Code **Folder contains a Dev Container configuration file. Reopen folder to develop in a container** which will inform you that the support for containers is prepared. Confirm the message by clicking on **Reopen in Container**. If the message is not there, you can still manually open the project in a container by running the command **Dev Containers: Reopen in Container**.
@@ -1400,3 +1415,4 @@ The container has already a node preinstalled so it is possible to compile a new
1400
1415
  - [Material Icons](https://fonts.google.com/icons) - Icons from Google Fonts
1401
1416
  - [Trix](https://trix-editor.org/) - WYSIWYG editor
1402
1417
  - [Alpine.js](https://alpinejs.dev/) - JavaScript interactions
1418
+ - [Chart.js](https://github.com/chartjs/Chart.js/) - Chart components
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-unfold"
3
- version = "0.33.0"
3
+ version = "0.34.0"
4
4
  description = "Modern Django admin theme for seamless interface development"
5
5
  license = "MIT"
6
6
  readme = "README.md"
@@ -84,7 +84,7 @@ FORMFIELD_OVERRIDES = {
84
84
  models.UUIDField: {"widget": UnfoldAdminUUIDInputWidget},
85
85
  models.TextField: {"widget": UnfoldAdminTextareaWidget},
86
86
  models.NullBooleanField: {"widget": UnfoldAdminNullBooleanSelectWidget},
87
- models.BooleanField: {"widget": UnfoldBooleanWidget},
87
+ models.BooleanField: {"widget": UnfoldBooleanSwitchWidget},
88
88
  models.IntegerField: {"widget": UnfoldAdminIntegerFieldWidget},
89
89
  models.BigIntegerField: {"widget": UnfoldAdminBigIntegerFieldWidget},
90
90
  models.DecimalField: {"widget": UnfoldAdminDecimalFieldWidget},
@@ -119,7 +119,9 @@ FORMFIELD_OVERRIDES_INLINE.update(
119
119
  }
120
120
  )
121
121
 
122
- checkbox = UnfoldBooleanWidget({"class": "action-select"}, lambda value: False)
122
+ checkbox = UnfoldBooleanWidget(
123
+ {"class": "action-select", "aria-label": _("Select record")}, lambda value: False
124
+ )
123
125
 
124
126
  helpers.AdminField = UnfoldAdminField
125
127
 
@@ -231,6 +233,7 @@ class ModelAdmin(ModelAdminMixin, BaseModelAdmin):
231
233
  list_horizontal_scrollbar_top = False
232
234
  list_filter_submit = False
233
235
  list_fullwidth = False
236
+ list_disable_select_all = False
234
237
  compressed_fields = False
235
238
  readonly_preprocess_fields = {}
236
239
  checks_class = UnfoldModelAdminChecks
@@ -414,13 +417,6 @@ class ModelAdmin(ModelAdminMixin, BaseModelAdmin):
414
417
  if extra_context is None:
415
418
  extra_context = {}
416
419
 
417
- new_formfield_overrides = copy.deepcopy(self.formfield_overrides)
418
- new_formfield_overrides.update(
419
- {models.BooleanField: {"widget": UnfoldBooleanSwitchWidget}}
420
- )
421
-
422
- self.formfield_overrides = new_formfield_overrides
423
-
424
420
  actions = []
425
421
  if object_id:
426
422
  for action in self.get_actions_detail(request, object_id):
@@ -2,7 +2,7 @@
2
2
 
3
3
  {% with choices.0 as choice %}
4
4
  <div class="flex flex-col mb-6">
5
- <h3 class="font-medium mb-2 text-gray-700 text-sm dark:text-gray-200">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
5
+ <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
6
6
 
7
7
  <div class="flex flex-col space-y-4">
8
8
  {% for field in choice.form %}
@@ -2,7 +2,7 @@
2
2
 
3
3
  {% with choices.0 as choice %}
4
4
  <div class="flex flex-col mb-6">
5
- <h3 class="font-medium mb-2 text-gray-700 text-sm dark:text-gray-200">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
5
+ <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
6
6
 
7
7
  <div class="flex flex-col space-y-4">
8
8
  {% for field in choice.form %}
@@ -2,7 +2,7 @@
2
2
 
3
3
  {% with choices.0 as choice %}
4
4
  <div class="flex flex-col mb-6">
5
- <h3 class="font-medium mb-2 text-gray-700 text-sm dark:text-gray-200">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
5
+ <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
6
6
 
7
7
  <div class="flex flex-row gap-4">
8
8
  {% for field in choice.form %}
@@ -2,7 +2,7 @@
2
2
 
3
3
  {% with choices.0 as choice %}
4
4
  <div class="flex flex-col mb-6">
5
- <h3 class="font-medium mb-2 text-gray-700 text-sm dark:text-gray-200">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
5
+ <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">{% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}</h3>
6
6
 
7
7
  {% for field in choice.form %}
8
8
  <div class="flex flex-row flex-wrap group relative{% if field.errors %} errors{% endif %}">
@@ -3,7 +3,7 @@
3
3
 
4
4
  {% with choices.0 as choice %}
5
5
  <div class="admin-numeric-filter-wrapper mb-6">
6
- <h3 class="font-medium mb-2 text-gray-700 text-sm dark:text-gray-200">
6
+ <h3 class="font-semibold mb-2 text-gray-900 dark:text-gray-100">
7
7
  {% blocktrans with filter_title=title %}By {{ filter_title }}{% endblocktrans %}
8
8
  </h3>
9
9
 
@@ -3,25 +3,25 @@
3
3
  <form method="post">
4
4
  {% csrf_token %}
5
5
 
6
- <h2 class="font-medium mb-3 text-sm text-gray-700 dark:text-gray-200">
6
+ <h2 class="font-semibold mb-3 text-gray-900 dark:text-gray-100">
7
7
  {% trans "Group permissions" %}
8
8
  </h2>
9
9
 
10
10
  {% if groups_perms.items %}
11
- <table id="group-permissions" class="border-gray-200 border-spacing-none border-separate mb-6 text-gray-700 w-full dark:text-gray-300 lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
12
- <thead class="hidden lg:table-header-group">
11
+ <table id="group-permissions" class="border-gray-200 border-spacing-none border-separate mb-6 w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
12
+ <thead class="hidden lg:table-header-group text-gray-900 dark:text-gray-100">
13
13
  <tr>
14
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
14
+ <th class="align-middle font-medium px-3 py-2 text-left">
15
15
  {% trans "Group" %}
16
16
  </th>
17
17
 
18
18
  {% for perm in model_perms %}
19
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
19
+ <th class="align-middle font-medium px-3 py-2 text-left">
20
20
  {{ perm.name }}
21
21
  </th>
22
22
  {% endfor %}
23
23
 
24
- <th class="align-middle font-medium px-3 py-2 text-right text-gray-400 text-sm">
24
+ <th class="align-middle font-medium px-3 py-2 text-right">
25
25
  {% trans "Action" %}
26
26
  </th>
27
27
  </tr>
@@ -30,14 +30,14 @@
30
30
  <tbody>
31
31
  {% for group, group_perms in groups_perms.items %}
32
32
  <tr class="block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
33
- <th class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "User" %}">
34
- <span class="text-gray-700 dark:text-gray-200">
33
+ <th class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "User" %}">
34
+ <span>
35
35
  {{ group }}
36
36
  </span>
37
37
  </th>
38
38
 
39
39
  {% for perm in model_perms %}
40
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{{ perm.name }}">
40
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{{ perm.name }}">
41
41
  {% if perm.codename in group_perms %}
42
42
  {% include "unfold/helpers/boolean.html" with value=False %}
43
43
  {% else %}
@@ -46,7 +46,7 @@
46
46
  </td>
47
47
  {% endfor %}
48
48
 
49
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-right text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "Action" %}">
49
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-right before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "Action" %}">
50
50
  <a href="group-manage/{{ group.id|safe }}/" class="hover:text-gray-700 dark:hover:text-white">
51
51
  {% trans "Edit" %}
52
52
  </a>
@@ -3,25 +3,25 @@
3
3
  <form method="post">
4
4
  {% csrf_token %}
5
5
 
6
- <h2 class="font-medium mb-3 text-sm text-gray-700 dark:text-gray-200">
6
+ <h2 class="font-medium mb-3 text-gray-700 dark:text-gray-200">
7
7
  {% trans "User permissions" %}
8
8
  </h2>
9
9
 
10
10
  {% if users_perms.items %}
11
- <table id="user-permissions" class="border-gray-200 border-spacing-none border-separate mb-6 text-gray-700 w-full dark:text-gray-300 lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
12
- <thead class="hidden lg:table-header-group">
11
+ <table id="user-permissions" class="border-gray-200 border-spacing-none border-separate mb-6 w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
12
+ <thead class="hidden lg:table-header-group text-gray-900 dark:text-gray-100">
13
13
  <tr>
14
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
14
+ <th class="align-middle font-medium px-3 py-2 text-left">
15
15
  {% trans "User" %}
16
16
  </th>
17
17
 
18
18
  {% for perm in model_perms %}
19
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
19
+ <th class="align-middle font-medium px-3 py-2 text-left">
20
20
  {{ perm.name }}
21
21
  </th>
22
22
  {% endfor %}
23
23
 
24
- <th class="align-middle font-medium px-3 py-2 text-right text-gray-400 text-sm">
24
+ <th class="align-middle font-medium px-3 py-2 text-right">
25
25
  {% trans "Action" %}
26
26
  </th>
27
27
  </tr>
@@ -30,14 +30,14 @@
30
30
  <tbody>
31
31
  {% for user, user_perms in users_perms.items %}
32
32
  <tr class="block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
33
- <th class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "User" %}">
34
- <span class="text-gray-700 dark:text-gray-200">
33
+ <th class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "User" %}">
34
+ <span>
35
35
  {{ user }}
36
36
  </span>
37
37
  </th>
38
38
 
39
39
  {% for perm in model_perms %}
40
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{{ perm.name }}">
40
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{{ perm.name }}">
41
41
  {% if perm.codename in group_perms %}
42
42
  {% include "unfold/helpers/boolean.html" with value=False %}
43
43
  {% else %}
@@ -46,7 +46,7 @@
46
46
  </td>
47
47
  {% endfor %}
48
48
 
49
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-right text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "Action" %}">
49
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-right before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans "Action" %}">
50
50
  <a href="user-manage/{{ user.id|safe }}/" class="hover:text-gray-700 dark:hover:text-white">
51
51
  {% trans "Edit" %}
52
52
  </a>
@@ -6,7 +6,7 @@
6
6
 
7
7
  {{ confirm_form.as_p }}
8
8
 
9
- <p class="font-medium p-4 text-sm text-gray-700 dark:text-gray-200">
9
+ <p class="font-semibold p-4 text-sm text-gray-900 dark:text-gray-100">
10
10
  {% trans "Below is a preview of data to be imported. If you are satisfied with the results, click 'Confirm import'" %}
11
11
  </p>
12
12
 
@@ -14,8 +14,8 @@
14
14
  {% for line, errors in result.row_errors %}
15
15
  {% for error in errors %}
16
16
  <li x-data="{ open: false }">
17
- <div class="bg-red-50 border border-red-200 cursor-pointer mb-4 rounded shadow-sm text-red-500 text-sm dark:bg-red-500/20 dark:border-red-500/20" x-on:click="open = ! open">
18
- <div class="border-b border-red-200 flex flex-row font-medium py-3 px-4 dark:border-red-500/20">
17
+ <div class="bg-red-50 border border-red-200 cursor-pointer mb-4 rounded shadow-sm text-red-500 dark:bg-red-500/20 dark:border-red-500/20" x-on:click="open = ! open">
18
+ <div class="border-b border-red-200 flex flex-row font-semibold py-3 px-4 dark:border-red-500/20">
19
19
  {% trans "Line number" %}: {{ line }} - {{ error.error }}
20
20
  </div>
21
21
 
@@ -26,7 +26,7 @@
26
26
  </div>
27
27
  </div>
28
28
 
29
- <div class="block border leading-relaxed rounded p-4 text-sm traceback dark:border-gray-800 dark:text-gray-300 " x-show="open">
29
+ <div class="block border leading-relaxed mb-4 rounded p-4 traceback dark:border-gray-800 dark:text-gray-300 " x-show="open">
30
30
  {{ error.traceback|linebreaks }}
31
31
  </div>
32
32
  </li>
@@ -1,13 +1,13 @@
1
1
  {% load admin_urls i18n import_export_tags unfold %}
2
2
 
3
3
  {% block preview %}
4
- <table class="border-gray-200 border-spacing-none border-separate text-gray-700 w-full dark:text-gray-300 lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
5
- <thead class="hidden lg:table-header-group">
4
+ <table class="border-gray-200 border-spacing-none border-separate w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
5
+ <thead class="hidden lg:table-header-group text-gray-900 dark:text-gray-100">
6
6
  <tr>
7
- <th class="align-middle capitalize font-medium px-3 py-2 text-left text-gray-400 text-sm"></th>
7
+ <th class="align-middle capitalize font-semibold px-3 py-2 text-left"></th>
8
8
 
9
9
  {% for field in result.diff_headers %}
10
- <th class="align-middle capitalize font-medium px-3 py-2 text-left text-gray-400 text-sm">
10
+ <th class="align-middle capitalize font-semibold px-3 py-2 text-left">
11
11
  {{ field }}
12
12
  </th>
13
13
  {% endfor %}
@@ -17,7 +17,7 @@
17
17
  <tbody>
18
18
  {% for row in result.valid_rows %}
19
19
  <tr class="{{ row.import_type }} {% cycle '' 'bg-gray-50 dark:bg-white/[.02]' %} block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
20
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:block before:capitalize before:content-[attr(data-label)] before:mr-auto before:text-gray-500 dark:before:text-gray-300 lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
20
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
21
21
  {% if row.import_type == 'new' %}
22
22
  {% trans "New" %}
23
23
  {% elif row.import_type == 'skip' %}
@@ -30,7 +30,7 @@
30
30
  </td>
31
31
 
32
32
  {% for field in row.diff %}
33
- <td data-label="{{ result.diff_headers|index:forloop.counter0 }}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:block before:capitalize before:content-[attr(data-label)] before:mr-auto before:text-gray-500 dark:before:text-gray-300 lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
33
+ <td data-label="{{ result.diff_headers|index:forloop.counter0 }}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
34
34
  {{ field }}
35
35
  </td>
36
36
  {% endfor %}
@@ -15,19 +15,19 @@
15
15
  </div>
16
16
  </div>
17
17
 
18
- <table class="border-gray-200 border-spacing-none border-separate text-gray-700 w-full dark:text-gray-300 lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
19
- <thead class="hidden lg:table-header-group">
18
+ <table class="border-gray-200 border-spacing-none border-separate w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
19
+ <thead class="hidden lg:table-header-group font-semibold text-gray-900 dark:text-gray-100">
20
20
  <tr>
21
- <th class="align-middle capitalize font-medium px-3 py-2 text-left text-gray-400 text-sm">
21
+ <th class="align-middle capitalize px-3 py-2 text-left">
22
22
  {% trans "Row" %}
23
23
  </th>
24
24
 
25
- <th class="align-middle capitalize font-medium px-3 py-2 text-left text-gray-400 text-sm">
25
+ <th class="align-middle capitalize px-3 py-2 text-left">
26
26
  {% trans "Errors" %}
27
27
  </th>
28
28
 
29
29
  {% for field in result.diff_headers %}
30
- <th class="align-middle capitalize font-medium px-3 py-2 text-left text-gray-400 text-sm">
30
+ <th class="align-middle capitalize px-3 py-2 text-left">
31
31
  {{ field }}
32
32
  </th>
33
33
  {% endfor %}
@@ -37,11 +37,11 @@
37
37
  <tbody>
38
38
  {% for row in result.invalid_rows %}
39
39
  <tr class="{% cycle '' 'bg-gray-50 dark:bg-white/[.02]' %} block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
40
- <td data-label="{% trans "Row" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:block before:capitalize before:content-[attr(data-label)] before:mr-auto before:text-gray-500 dark:before:text-gray-300 lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
40
+ <td data-label="{% trans "Row" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
41
41
  {{ row.number }}
42
42
  </td>
43
43
 
44
- <td data-label="{% trans "Errors" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:block before:capitalize before:content-[attr(data-label)] before:mr-auto before:text-gray-500 dark:before:text-gray-300 lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
44
+ <td data-label="{% trans "Errors" %}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
45
45
  <div>
46
46
  <span class="bg-red-600 font-semibold ml-2 px-1 rounded-sm text-xs text-white">{{ row.error_count }}</span>
47
47
  </div>
@@ -77,7 +77,7 @@
77
77
  </td>
78
78
 
79
79
  {% for field in row.values %}
80
- <td data-label="{{ result.diff_headers|index:forloop.counter0 }}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:block before:capitalize before:content-[attr(data-label)] before:mr-auto before:text-gray-500 dark:before:text-gray-300 lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
80
+ <td data-label="{{ result.diff_headers|index:forloop.counter0 }}" class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:block before:capitalize before:content-[attr(data-label)] before:mr-auto lg:before:hidden lg:py-3 lg:table-cell dark:border-gray-800">
81
81
  {{ field }}
82
82
  </td>
83
83
  {% endfor %}
@@ -3,36 +3,36 @@
3
3
  {% load admin_urls %}
4
4
  {% load getattribute from getattributes %}
5
5
 
6
- <table id="change-history" class="border-gray-200 border-spacing-none border-separate mb-6 text-gray-700 w-full dark:text-gray-300 lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
7
- <thead class="hidden lg:table-header-group">
6
+ <table id="change-history" class="border-gray-200 border-spacing-none border-separate mb-6 w-full lg:border lg:rounded-md lg:shadow-sm lg:dark:border-gray-800">
7
+ <thead class="hidden text-gray-900 lg:table-header-group dark:text-gray-100">
8
8
  <tr>
9
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
9
+ <th class="align-middle font-medium px-3 py-2 text-left ">
10
10
  {% trans 'Object' %}
11
11
  </th>
12
12
 
13
13
  {% for column in history_list_display %}
14
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
14
+ <th class="align-middle font-medium px-3 py-2 text-left ">
15
15
  {% trans column %}
16
16
  </th>
17
17
  {% endfor %}
18
18
 
19
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
19
+ <th class="align-middle font-medium px-3 py-2 text-left">
20
20
  {% trans 'Date/time' %}
21
21
  </th>
22
22
 
23
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
23
+ <th class="align-middle font-medium px-3 py-2 text-left">
24
24
  {% trans 'Comment' %}
25
25
  </th>
26
26
 
27
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
27
+ <th class="align-middle font-medium px-3 py-2 text-left">
28
28
  {% trans 'Changed by' %}
29
29
  </th>
30
30
 
31
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
31
+ <th class="align-middle font-medium px-3 py-2 text-left">
32
32
  {% trans 'Change reason' %}
33
33
  </th>
34
34
 
35
- <th class="align-middle font-medium px-3 py-2 text-left text-gray-400 text-sm">
35
+ <th class="align-middle font-medium px-3 py-2 text-left">
36
36
  {% trans 'Changes' %}
37
37
  </th>
38
38
  </tr>
@@ -41,27 +41,27 @@
41
41
  <tbody>
42
42
  {% for record in historical_records %}
43
43
  <tr class="block border mb-3 rounded-md shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-gray-800">
44
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Object' %}">
44
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Object' %}">
45
45
  <a href="{% url opts|admin_urlname:'simple_history' object.pk record.pk %}">
46
46
  {{ record.history_object }}
47
47
  </a>
48
48
  </td>
49
49
 
50
50
  {% for column in history_list_display %}
51
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans column %}">
51
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans column %}">
52
52
  {{ record|getattribute:column }}
53
53
  </th>
54
54
  {% endfor %}
55
55
 
56
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Date/time' %}">
56
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Date/time' %}">
57
57
  {{ record.history_date }}
58
58
  </td>
59
59
 
60
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Comment' %}">
60
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Comment' %}">
61
61
  {{ record.get_history_type_display }}
62
62
  </td>
63
63
 
64
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Changed by' %}">
64
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Changed by' %}">
65
65
  {% if record.history_user %}
66
66
  {% url admin_user_view record.history_user_id as admin_user_url %}
67
67
 
@@ -75,17 +75,17 @@
75
75
  {% endif %}
76
76
  </td>
77
77
 
78
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Change reason' %}">
78
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Change reason' %}">
79
79
  {{ record.history_change_reason }}
80
80
  </td>
81
81
 
82
- <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left text-sm before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto before:text-gray-500 first:border-t-0 dark:before:text-gray-300 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Changes' %}">
82
+ <td class="align-middle flex border-t border-gray-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-gray-800" data-label="{% trans 'Changes' %}">
83
83
  {% block history_delta_changes %}
84
84
  {% if record.history_delta_changes %}
85
85
  <ul>
86
86
  {% for change in record.history_delta_changes %}
87
87
  <li class="flex flex-row gap-2">
88
- <strong class="font-medium text-gray-700 dark:text-gray-200">
88
+ <strong class="font-medium">
89
89
  {{ change.field }}:
90
90
  </strong>
91
91
 
@@ -97,7 +97,7 @@
97
97
  {% endif %}
98
98
 
99
99
  {% if change.old and change.new %}
100
- <span class="align-text-top material-symbols-outlined md-18 text-gray-300 group-hover:text-gray-300 dark:text-gray-600">arrow_right_alt</span>
100
+ <span class="align-text-top material-symbols-outlined md-18 ">arrow_right_alt</span>
101
101
  {% endif %}
102
102
 
103
103
  {% if change.new %}
@@ -95,7 +95,7 @@ class UnfoldAdminReadonlyField(helpers.AdminReadonlyField):
95
95
  current_app=self.model_admin.admin_site.name,
96
96
  )
97
97
  return format_html(
98
- '<a href="{}" class="text-primary-600 underline dark:text-primary-500">{}</a>',
98
+ '<a href="{}" class="text-primary-600 dark:text-primary-500">{}</a>',
99
99
  url,
100
100
  remote_obj,
101
101
  )
@@ -148,7 +148,7 @@ class UnfoldAdminReadonlyField(helpers.AdminReadonlyField):
148
148
  return conditional_escape(result_repr)
149
149
  elif isinstance(f, models.URLField):
150
150
  return format_html(
151
- '<a href="{}" class="text-primary-600 underline whitespace-nowrap dark:text-primary-500">{}</a>',
151
+ '<a href="{}" class="text-primary-600 dark:text-primary-500">{}</a>',
152
152
  value,
153
153
  value,
154
154
  )
@@ -36,6 +36,7 @@ class ActionForm(forms.Form):
36
36
  widget=forms.Select(
37
37
  {
38
38
  "class": " ".join([*SELECT_CLASSES, "max-w-full", "lg:!w-64"]),
39
+ "aria-label": _("Select action to run"),
39
40
  "x-model": "action",
40
41
  }
41
42
  ),
@@ -97,7 +98,7 @@ class UserChangeForm(BaseUserChangeForm):
97
98
  self.fields["password"].help_text = _(
98
99
  "Raw passwords are not stored, so there is no way to see this "
99
100
  "user’s password, but you can change the password using "
100
- '<a href="{}" class="text-primary-600 underline whitespace-nowrap dark:text-primary-500">this form</a>.'
101
+ '<a href="{}" class="text-primary-600 dark:text-primary-500">this form</a>.'
101
102
  )
102
103
 
103
104
  password = self.fields.get("password")