django-unfold 0.60.0__py3-none-any.whl → 0.61.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. {django_unfold-0.60.0.dist-info → django_unfold-0.61.0.dist-info}/METADATA +15 -6
  2. {django_unfold-0.60.0.dist-info → django_unfold-0.61.0.dist-info}/RECORD +40 -37
  3. unfold/admin.py +1 -1
  4. unfold/contrib/import_export/templates/admin/import_export/change_list_import.html +5 -0
  5. unfold/contrib/simple_history/templates/simple_history/submit_line.html +16 -18
  6. unfold/forms.py +2 -2
  7. unfold/mixins/base_model_admin.py +7 -2
  8. unfold/sites.py +15 -2
  9. unfold/static/unfold/css/styles.css +1 -1
  10. unfold/static/unfold/js/app.js +61 -0
  11. unfold/styles.css +3 -5
  12. unfold/templates/admin/auth/user/add_form.html +1 -5
  13. unfold/templates/admin/change_form.html +3 -1
  14. unfold/templates/admin/change_list.html +4 -2
  15. unfold/templates/admin/change_list_results.html +3 -3
  16. unfold/templates/admin/edit_inline/stacked.html +8 -2
  17. unfold/templates/admin/edit_inline/tabular.html +2 -2
  18. unfold/templates/admin/includes/fieldset.html +9 -3
  19. unfold/templates/admin/search_form.html +14 -5
  20. unfold/templates/admin/submit_line.html +1 -1
  21. unfold/templates/unfold/components/card.html +4 -4
  22. unfold/templates/unfold/helpers/add_link.html +3 -1
  23. unfold/templates/unfold/helpers/fieldsets_tabs.html +3 -3
  24. unfold/templates/unfold/helpers/help_text.html +1 -1
  25. unfold/templates/unfold/helpers/messages.html +4 -4
  26. unfold/templates/unfold/helpers/pagination.html +1 -1
  27. unfold/templates/unfold/helpers/popup_header.html +27 -0
  28. unfold/templates/unfold/helpers/search.html +16 -12
  29. unfold/templates/unfold/helpers/search_results.html +10 -9
  30. unfold/templates/unfold/helpers/shortcut.html +3 -0
  31. unfold/templates/unfold/helpers/site_branding.html +2 -2
  32. unfold/templates/unfold/helpers/tab_action.html +4 -3
  33. unfold/templates/unfold_crispy/field.html +12 -10
  34. unfold/templates/unfold_crispy/layout/checkbox.html +20 -4
  35. unfold/templates/unfold_crispy/layout/fieldset.html +3 -3
  36. unfold/templatetags/unfold.py +3 -3
  37. unfold/templatetags/unfold_list.py +4 -1
  38. unfold/widgets.py +2 -1
  39. {django_unfold-0.60.0.dist-info → django_unfold-0.61.0.dist-info}/LICENSE.md +0 -0
  40. {django_unfold-0.60.0.dist-info → django_unfold-0.61.0.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-unfold
3
- Version: 0.60.0
3
+ Version: 0.61.0
4
4
  Summary: Modern Django admin theme for seamless interface development
5
5
  License: MIT
6
6
  Keywords: django,admin,tailwind,theme
@@ -24,7 +24,7 @@ Description-Content-Type: text/markdown
24
24
 
25
25
  ![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,5 +1,5 @@
1
1
  unfold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- unfold/admin.py,sha256=GKntMIZnksjuAuHZQ9ppw6NlKPU_59V-EC-gEaZa61I,7451
2
+ unfold/admin.py,sha256=B-MAEjAJuDSzGse2POA6fiLklwcDb9oVEsWR7Zn4z5Q,7455
3
3
  unfold/apps.py,sha256=SlBXPYrUd2uXn67qFbRvbXSUk3XFWrF4-5WELgDCvho,381
4
4
  unfold/checks.py,sha256=e5HEhbXRcu3FwZDT_d-IbimeVpjJ6jgCUPXWvsUjEw0,2601
5
5
  unfold/components.py,sha256=vqkQzseYUvLXDohmTVAlbKopALjyX4WA9yglvdfhqu4,1283
@@ -56,6 +56,7 @@ unfold/contrib/import_export/templates/admin/import_export/base.html,sha256=y-J1
56
56
  unfold/contrib/import_export/templates/admin/import_export/change_form.html,sha256=TYiMBf8bSJoMiSrHGAa-OwyheVyNG3WyWFNeH2tmZjc,460
57
57
  unfold/contrib/import_export/templates/admin/import_export/change_list_export.html,sha256=vZb2XVoJrDSjM1msiZqkQPMLQGjuqRHuLNdt11hmbQs,164
58
58
  unfold/contrib/import_export/templates/admin/import_export/change_list_export_item.html,sha256=pTDeqPKOlCPKH2dxMIfPnWuc2wVDzB7AzL73WbxSnRY,257
59
+ unfold/contrib/import_export/templates/admin/import_export/change_list_import.html,sha256=QTbp4m-XKKWFbnBotslw1Dw7O1fUWnFTDtAIymzOMDw,164
59
60
  unfold/contrib/import_export/templates/admin/import_export/change_list_import_export.html,sha256=JdKd6P2Ot9Ou4yg4CywTauuE1UiTz_mRvDwlx3vj3LI,229
60
61
  unfold/contrib/import_export/templates/admin/import_export/change_list_import_item.html,sha256=XUuRxnsx9YQbKvW-E_JGl_ha7kpTSGSoRefOTTizuX0,233
61
62
  unfold/contrib/import_export/templates/admin/import_export/export.html,sha256=uzv2LuTIV7MZKcg7L_I8EmI0weEpJBL_omXmGSHtyH0,3463
@@ -79,27 +80,27 @@ unfold/contrib/simple_history/apps.py,sha256=eF_KVYb60CAnGgWk2Z1YKYGfgA3TJBMr229
79
80
  unfold/contrib/simple_history/templates/simple_history/object_history.html,sha256=unZQE70be7cK6v0YPlITFeaosmiLt3kiei-pmmCjBg0,1711
80
81
  unfold/contrib/simple_history/templates/simple_history/object_history_form.html,sha256=1wsz8KTmjsgAthFS2myfcS3QvyeL0-qT8s2w7JINVhQ,2256
81
82
  unfold/contrib/simple_history/templates/simple_history/object_history_list.html,sha256=PWtjuAcxciAI001qIrXLvbUxzCFl_SDAaHA5FhR16Z8,6858
82
- unfold/contrib/simple_history/templates/simple_history/submit_line.html,sha256=tJgOgq7lMetWF4DJoBqUYdRSY6EeRivXhOBYlyPXzTk,1750
83
+ unfold/contrib/simple_history/templates/simple_history/submit_line.html,sha256=PEoPmWcWiiBIMs6XtXcoXswDtxp3FgntR3maieLDt4Y,1618
83
84
  unfold/dataclasses.py,sha256=a-9INnkCAIcnMgoffTcB1rxWCJH33AjhMCWIGWnjWbI,719
84
85
  unfold/decorators.py,sha256=jPiYFy1p0WGFn68VZhAZkYCPDF7argb9SDFaH6aemHk,4922
85
86
  unfold/enums.py,sha256=9sTfyEycMWeoGPBa-ft6ZhQGnW1vkFg108RMBVf9nko,187
86
87
  unfold/exceptions.py,sha256=gcCj1ox61E137bk_0Cqy4YC3SttdPgB-fiJUqpmyHSE,43
87
88
  unfold/fields.py,sha256=h7mpRlsoFu6xQrCbehrjsBpyxFsXc-lMDzEI1JREoJk,7304
88
- unfold/forms.py,sha256=N2VN_rhy-U0XXae1TWIZam-fJimR8YXJGm-pt_G2zp4,7747
89
+ unfold/forms.py,sha256=0u4TFw7oQ96S7njzJ2G79Qzt1X-4P4px-kfMgjVt49o,7762
89
90
  unfold/layout.py,sha256=Q-dFTA6UlvvPCA4PsGyTkHQmBLO7PL56xBfZi-bdt0c,1459
90
91
  unfold/mixins/__init__.py,sha256=YlhoDs9Y_DXQ8Ejr3enxuHMS1-Ij9fwukxNwpeOS4Co,190
91
92
  unfold/mixins/action_model_admin.py,sha256=9Zt4FLrQWEQSO2vrpwjzpFo_I3_yE000uEwHndsW5kg,12365
92
- unfold/mixins/base_model_admin.py,sha256=dGxyd2ATcfMdzUlBuNOr059kbuFVLWXL8_VpHV8nV84,4611
93
+ unfold/mixins/base_model_admin.py,sha256=PyTZSxF6tIcs20VlMCX08tFnB0ORU0VXvgcPArkiE68,4796
93
94
  unfold/overrides.py,sha256=ERVY9boZiXgjDYcTEZcIp7KWoeBZ45VM_zN31yAOjyQ,2922
94
95
  unfold/paginator.py,sha256=bZiEY-1kqZy_6CYGs9fHo6WntMgpnFCH-LJPoXkEESk,533
95
96
  unfold/sections.py,sha256=Lcg3xCZ76fqjm4vD4x7YdE5VsbTKluL-sX5QTEBlHxA,2379
96
97
  unfold/settings.py,sha256=DE3hComMaWtty8o-LqdgGGcoku3mevRWJah4NH1k5B4,2879
97
- unfold/sites.py,sha256=QY6PVMAM6CPxFytcoJP3lj40WaorSJSjSHAoHnQbg-k,17291
98
+ unfold/sites.py,sha256=GPeMbBA4ckhacUOPW9PXrzQrOttU7_91zwReaKJdZgc,17616
98
99
  unfold/static/admin/js/admin/RelatedObjectLookups.js,sha256=ubKKhWmX_QborwPnaLHuQshTwQw6tK1pAViWdKIjw4E,9222
99
100
  unfold/static/admin/js/inlines.js,sha256=zcYwLGI_6RHg-gucDbbhp43RRoZd3so8bPk841KFaIE,15573
100
101
  unfold/static/unfold/css/simplebar/LICENSE,sha256=okNJf6UFl2NrEiC4iqORNBa16IKgUgV88acdcl9FbtY,1081
101
102
  unfold/static/unfold/css/simplebar/simplebar.css,sha256=5LLaEM11pKi6JFCOLt4XKuZxTpT9rpdq_tNlaQytFlU,4647
102
- unfold/static/unfold/css/styles.css,sha256=LqAcA9FY50-oBxSdJIf0jAWaIPW70Z4qsMgGhredRB0,158705
103
+ unfold/static/unfold/css/styles.css,sha256=3Ch1P8TjpORzdOWrm41Gk5ljm-S2XImJkHOLmtMFaaE,158843
103
104
  unfold/static/unfold/fonts/inter/Inter-Bold.woff2,sha256=-oiBJ7baAVtlVp8DUfO1w5GtkokElR8cIOn4RiqNleo,114840
104
105
  unfold/static/unfold/fonts/inter/Inter-Medium.woff2,sha256=D_PpRhThST61VjFP0keubEqFp3g7TMhr5TmUDPg_Kkg,114348
105
106
  unfold/static/unfold/fonts/inter/Inter-Regular.woff2,sha256=4G9rG8VTqupORmgCPtCrChRxKcMQf1Ebx9A9NhsK4IU,111268
@@ -115,7 +116,7 @@ unfold/static/unfold/js/alpine/alpine.js,sha256=PtHu0lJIiSHfZeNj1nFd6wTX-Squ255S
115
116
  unfold/static/unfold/js/alpine/alpine.persist.js,sha256=jFBwr6faTqqhp3sVi4_VTxJ0FpaF9YGZN1ZGLl_5QYM,837
116
117
  unfold/static/unfold/js/alpine/alpine.resize.js,sha256=mXR2L6neT584cfNLY5_imDq5DKjW1noXys7fhb1yxY4,703
117
118
  unfold/static/unfold/js/alpine/alpine.sort.js,sha256=q6LxgConwu8M8R03mZSBcsKwJv6fF7oomP8sqLxVQ0w,37891
118
- unfold/static/unfold/js/app.js,sha256=mxCSV8gZvRLHab-_Xm_229NtQ9IX-59vS_GKWTp9liM,7748
119
+ unfold/static/unfold/js/app.js,sha256=UfVvyLqwoUUYci7dRbFXz1e4q68WTwz3M3K80JAQxfE,9414
119
120
  unfold/static/unfold/js/chart/LICENSE,sha256=QahKosq6ZF-WahjZwgVrc-bTqB2AvABGvAARomNNTM4,1093
120
121
  unfold/static/unfold/js/chart/chart.js,sha256=22W6cFERR-CElMOKRgMMicueMVP0Vf7FBEBYH8Z8tCk,200633
121
122
  unfold/static/unfold/js/htmx/LICENSE,sha256=09JFb3ZBTyRWEEZg69Za_xwEzXlmuUK9q9Y_PNsxajg,642
@@ -123,40 +124,40 @@ unfold/static/unfold/js/htmx/htmx.js,sha256=acrv0NqSJpBm5yXX_hdeJrnVDJYuMFZFnAxH
123
124
  unfold/static/unfold/js/select2.init.js,sha256=l0O8ggw_CkAw-QtH3qEzC8xWk0mR9QHjy4VzAjMwiQQ,1109
124
125
  unfold/static/unfold/js/simplebar/LICENSE,sha256=okNJf6UFl2NrEiC4iqORNBa16IKgUgV88acdcl9FbtY,1081
125
126
  unfold/static/unfold/js/simplebar/simplebar.js,sha256=t-uG1FAD6ZoiMeN--wac0XRS7SxoDVG6zvRnGuEp7X8,27176
126
- unfold/styles.css,sha256=nHXgzszvYC6doRZQf3UlZTVcyPsNgb5rSibZVqAxmd4,21208
127
+ unfold/styles.css,sha256=nFgCmto4fLeMBh2kZlRCTwLB4V6T-X9vNGKPXX8DWqo,21292
127
128
  unfold/templates/admin/actions.html,sha256=iuuubcAILkOoYBgV6cpXqFIyZUh4zMqyFp0JaDFlPKU,3096
128
129
  unfold/templates/admin/app_index.html,sha256=LRR07CLcZVsYpisCOncWdMSACARNstcDt536Oydnt60,1239
129
130
  unfold/templates/admin/app_list.html,sha256=-DEZKFdmkdTq3rix_cgZurPZ1r8PHg5pBL3i7ZtzVdI,2972
130
- unfold/templates/admin/auth/user/add_form.html,sha256=tZgg6UoKxJ7zL6T99PLHlLBwd4LlDI2mGn6d5hmtsPs,486
131
+ unfold/templates/admin/auth/user/add_form.html,sha256=-_YY4guGdAbw2rCskrQfRAAvQF2XzVHt5UMI0fsLDm4,337
131
132
  unfold/templates/admin/auth/user/change_password.html,sha256=028v1dfQTlSmdr-WCuV4lBOmFa7Oo38CsYhsXEe8ANI,2831
132
133
  unfold/templates/admin/base.html,sha256=z9sU8rezHLqOZk5x13_5nvnqpRYf6XxQaMfa7N_GU68,2460
133
134
  unfold/templates/admin/base_site.html,sha256=UOsecaCycpyn_ygJNIKO7MQtDFJuHv--r83-mzaVY30,300
134
- unfold/templates/admin/change_form.html,sha256=stW5bIL_HuxtD9Bb0RVLHZiP8ln8lGBQ3D3V6MeJbAY,5616
135
+ unfold/templates/admin/change_form.html,sha256=SioX04QmUiCRBQYHD22HRss8V2ubhHDgZ_YVNfqiPV0,5758
135
136
  unfold/templates/admin/change_form_object_tools.html,sha256=eyeH-i2HgEM0Yi-OJA2D1VnKJyC19A_my1IDGxxoP8Y,593
136
- unfold/templates/admin/change_list.html,sha256=49PwsDjJuTDXfoCqpUqAFc84HFNOJk8dIHSdYCQIDuk,5269
137
+ unfold/templates/admin/change_list.html,sha256=39S_LBbd25DiKhL9HjLOamXN1o-Ads4HfeQ6wEvv8JA,5361
137
138
  unfold/templates/admin/change_list_object_tools.html,sha256=cmMiT2nT20Ph5yfpj9aHPr76Z-JP4aSXp0o-Rnad28s,147
138
- unfold/templates/admin/change_list_results.html,sha256=u9eUoOTWJ9woVeLVYhftAriCXPNu1bYT3qdAQojD3ZI,8055
139
+ unfold/templates/admin/change_list_results.html,sha256=YwLpgmsPgSSEk5Lw1VmmMfKS85y0ACrkNo-v0BKEw9Q,8238
139
140
  unfold/templates/admin/date_hierarchy.html,sha256=A-sIqBKzZTMqSn3NSHORIL1yTEAqhj4Atff0OvWtqT0,1413
140
141
  unfold/templates/admin/delete_confirmation.html,sha256=IPSGhOpxDl6hJB9LtpSg_XRkVmbDO1BpO9q_dthqkac,4635
141
142
  unfold/templates/admin/delete_selected_confirmation.html,sha256=T3NNe7pP0WM2QM4F39AbkDGsfd_d_tKYRpwxvExahgU,4399
142
- unfold/templates/admin/edit_inline/stacked.html,sha256=MNIFkU5YI2Olwu4jNlQ-qnPTiNms4MM2j9UlYFdU108,8232
143
- unfold/templates/admin/edit_inline/tabular.html,sha256=v-4YjGqHLMT40tv_aMua5lK5z6T19bejFvETdMK5u94,3011
143
+ unfold/templates/admin/edit_inline/stacked.html,sha256=szX_jhvXShedo5owpYRGSjvRtYj2BjvukmnLfCsXvwc,8623
144
+ unfold/templates/admin/edit_inline/tabular.html,sha256=roeOKLctqSGga37jRkpm5X7cyaaXq5kJ31U4_WK2lSg,3015
144
145
  unfold/templates/admin/filter.html,sha256=DEyrLgCWuncS1O1WR0vlt1evGQFvKoZV2pABkHzSoGU,2039
145
- unfold/templates/admin/includes/fieldset.html,sha256=QjEx8UBivPdibePGkg30xGYUS6Smcu2wIeDTHsaM0PM,1132
146
+ unfold/templates/admin/includes/fieldset.html,sha256=knUIN44un4M-M4wlzoLIE1U6qHDlVSt7EH9bV8RwK4g,1461
146
147
  unfold/templates/admin/includes/object_delete_summary.html,sha256=FgwfapZCKWtnFtTHqh1MRuxxLot4bAw92WCcR_V8ImI,444
147
148
  unfold/templates/admin/index.html,sha256=9ey6IIXxBVTEkVSDiQw01AwvMbUnG_h0B08N1Zg3wTg,578
148
149
  unfold/templates/admin/login.html,sha256=W07Dtr3-YQ-JP1jYKZMsBxrmO1u49A5R4UZyOUmZYfY,2465
149
150
  unfold/templates/admin/nav_sidebar.html,sha256=xvCaXOamXawmf80NhE0OwjjjuNwoyoePS--lsdqDeIE,772
150
151
  unfold/templates/admin/object_history.html,sha256=t-iJFQnpstowwsabGGA-FQjmcT1KIKhKLKbQ3iVELkk,4832
151
152
  unfold/templates/admin/pagination.html,sha256=-9kjc_lKEeqvDVHMrnTfnlXDxMSkM8GNRGZGuI9D8os,912
152
- unfold/templates/admin/search_form.html,sha256=ebd6ccOASaIUQsOZ0mVkcoB-EiKLqkN7y7cEm3fwsL8,1360
153
- unfold/templates/admin/submit_line.html,sha256=GvknbdmXXEw93BIQ8azUHhnQ1AcojExgGiSr0XaNg2A,4658
153
+ unfold/templates/admin/search_form.html,sha256=7ckco8llu5paptroZgr3jZw54DtowX-NiwFvxsCV898,1713
154
+ unfold/templates/admin/submit_line.html,sha256=9FDZ5HOfiJG11HSMtA4rfqjKe3ucC-_OChpx1CGTLac,4626
154
155
  unfold/templates/auth/widgets/read_only_password_hash.html,sha256=MlaNXJ2PLEbv8Nd01BBp-AQEfMB13LNxD_DzRemXhCg,775
155
156
  unfold/templates/registration/logged_out.html,sha256=oIdaqGcvIdBih3yNnUkXSEpvofRsBJ77obldnhcnP2U,997
156
157
  unfold/templates/registration/password_change_done.html,sha256=ITV6Fug4S6YG3WG-O1cm-sDAXTHEXPcNZ_w2x1IQFu8,1006
157
158
  unfold/templates/registration/password_change_form.html,sha256=-8AauxUHWHXVaokG269UsETY_FHKqU83Zx38ZzrAA1A,2159
158
159
  unfold/templates/unfold/components/button.html,sha256=RlNNIa_JmcsNFH151ECHkbB2TxpgeCPRh-eW1Bc0Xtk,933
159
- unfold/templates/unfold/components/card.html,sha256=N9ld_SWpXdmaqAea9bboy0bTg1YqIkAhsJmOj7nd0qs,1353
160
+ unfold/templates/unfold/components/card.html,sha256=fwko37u8KJIDQwiD2v8RoVuvZu8qBPyPl2TambOcFnc,1349
160
161
  unfold/templates/unfold/components/chart/bar.html,sha256=nDdDCUXvFd793OpNgNPQo0vBmvYngMsQyPHVTf1vfOw,297
161
162
  unfold/templates/unfold/components/chart/cohort.html,sha256=L00WR-igYv0C3t2yT_nZqeI-M5gVHpoaGv5RooRojqU,2402
162
163
  unfold/templates/unfold/components/chart/line.html,sha256=DHaZUFTlCs5cX7ioYdTzoN4ITHWNcEoNSUp7v3hlo_E,298
@@ -172,7 +173,7 @@ unfold/templates/unfold/components/title.html,sha256=aMYSO30ybFYqPnqwlJVh2uNmcgn
172
173
  unfold/templates/unfold/components/tracker.html,sha256=krlvsb06lpfdOIANsyrBOoLq1sgv6rXUGr-7MmP5Le0,292
173
174
  unfold/templates/unfold/helpers/account_links.html,sha256=Tq30bAkOU8QRR6CaB1CvTfTgkoPP5dz2v0OHYq0pRSE,2348
174
175
  unfold/templates/unfold/helpers/actions_row.html,sha256=RqhZsxgIFR-r1casv5CueL81uxNl8rA3XuCMDP--zLA,2586
175
- unfold/templates/unfold/helpers/add_link.html,sha256=Z0TzUavXH8AQ7A-I0SQ79t-UI87dyP_PZEpsDrm13Q8,810
176
+ unfold/templates/unfold/helpers/add_link.html,sha256=vd-oy-xMIDiVmFVvwDL3-S360hOOmyAdfqcOTdDU1hI,870
176
177
  unfold/templates/unfold/helpers/app_list.html,sha256=baydU9R_xmH9pWgs8B7PUcwTWcLxHDhD1ehs75c5PD0,5879
177
178
  unfold/templates/unfold/helpers/app_list_default.html,sha256=0TR2ZTy0KUqa6YR8IgihA_4RQqBIFOroYpRHHIyD4H8,4015
178
179
  unfold/templates/unfold/helpers/attrs.html,sha256=Mwpj72kuwYj8hOT3J2T8qx6f1r_4xwwaS1slHA-82jI,166
@@ -198,12 +199,12 @@ unfold/templates/unfold/helpers/field_readonly_value.html,sha256=FI_CFEsCN7ELQux
198
199
  unfold/templates/unfold/helpers/fieldset_row.html,sha256=LriorPLXU4VmqstjX1oBc3T49H8CbhCrRxwQ7YfUSkI,1219
199
200
  unfold/templates/unfold/helpers/fieldset_row_checkbox.html,sha256=z4aRab--zJS2PC0jfKPez85IptKGRrqgkPpwW6_IKoo,1467
200
201
  unfold/templates/unfold/helpers/fieldset_row_field.html,sha256=cqLT1fHsCCszOHxvYlDFDTAd-6RRoOjdqfdBdhFgHOo,647
201
- unfold/templates/unfold/helpers/fieldsets_tabs.html,sha256=NRmkr_vWnEyIFZ1xLpJf_VW1H3xcDlIhMFBuElp3dIo,1468
202
+ unfold/templates/unfold/helpers/fieldsets_tabs.html,sha256=-xKeJvEma2arbfle1gMMVR3wjaros7EIcbSyAgR0Lh4,1541
202
203
  unfold/templates/unfold/helpers/form_errors.html,sha256=mrv2_J7RPcLfVtoN1UHh3rfUyOSZpHl67wk1UGqtPcY,266
203
204
  unfold/templates/unfold/helpers/form_label.html,sha256=7FfaXfviQmqKpsA1E7NSwM8rJiMNLl9e73XQram0Pfs,249
204
205
  unfold/templates/unfold/helpers/header.html,sha256=cHAPz7niLLQDQbrZpURZS1hiA8OYLzkGaqnYzjgv8aE,1151
205
206
  unfold/templates/unfold/helpers/header_back_button.html,sha256=lNZcYZzQRZdNSI70UrxJ-pq7xnxifziZXtSK1FoPy_U,416
206
- unfold/templates/unfold/helpers/help_text.html,sha256=o-2_hyruIr_Xt0fo38aGgrpptPJFhddnVMPOVQOYhE4,113
207
+ unfold/templates/unfold/helpers/help_text.html,sha256=fDsSptYt6aPO3xPdMgbpwaINaF1FGFmaOb_1FiS_Bsg,118
207
208
  unfold/templates/unfold/helpers/history.html,sha256=qxfCZxFIyl91qDpxfwozhmyVFZwULysA8Y_2H8XJ7bM,1937
208
209
  unfold/templates/unfold/helpers/label.html,sha256=DRs0B08SmIvNY0QcFy78xDiI0hAKyfjExu-cm33PAaQ,911
209
210
  unfold/templates/unfold/helpers/language_form.html,sha256=Ve1qfIcL4DV6cxYfhqGkC_KghDjNyEB8j3hYts1S34M,708
@@ -214,23 +215,25 @@ unfold/templates/unfold/helpers/messages/errornote.html,sha256=3RVj4BIdft3yEUOdz
214
215
  unfold/templates/unfold/helpers/messages/info.html,sha256=4SCFtg3p6F33ZHJhYoIm2VVO5UPdW0ef04mTTqIdcD0,153
215
216
  unfold/templates/unfold/helpers/messages/success.html,sha256=UWHpRJTvVhXiYC9-AvJ9HeEZJj-poejFgy7EgLvwpf8,157
216
217
  unfold/templates/unfold/helpers/messages/warning.html,sha256=UldycPr8wdyp5vdjlkfs_yHCEvNg9PgspyzTALAjdDY,161
217
- unfold/templates/unfold/helpers/messages.html,sha256=ISkUlIDraDAVBwASkX1tFXHo8TY1vHKmmhh8BAg123E,915
218
+ unfold/templates/unfold/helpers/messages.html,sha256=SYVGFWdL1ZhFamxnZ6ZJUvs9GKITYpY4fvdebBlSprU,1003
218
219
  unfold/templates/unfold/helpers/navigation.html,sha256=U9cMmw3ETMI88zqHvSf5VQkMehcU6YfLKTcH1CmS4fY,554
219
220
  unfold/templates/unfold/helpers/navigation_header.html,sha256=08_LTuJF6MrG0hK6lUI9daCP5kQr5Q7FwY7Pl4kFxJQ,1474
220
- unfold/templates/unfold/helpers/pagination.html,sha256=N5TQDlj5kgJLj02oRiaX8W62jQtZVNoWfI2hXdpuY1g,439
221
+ unfold/templates/unfold/helpers/pagination.html,sha256=cvD4Jtw1YeKcgvWuY10iyM9Qjs52iokskzYG3TLscyY,375
221
222
  unfold/templates/unfold/helpers/pagination_current_item.html,sha256=4cZ2KLVcP0Y7xuGyXgexDQ07r94cgM5Gnmtv11dkRPQ,69
222
223
  unfold/templates/unfold/helpers/pagination_default.html,sha256=pseTrqaG5EOn_IpCy0GXNht3ickSkZYJ4lJaocZeI6A,496
223
224
  unfold/templates/unfold/helpers/pagination_ellipsis.html,sha256=8g0KUUKtqRkXx_EBLGtsJsiYQO4tPS3GazZjxT90e0M,56
224
225
  unfold/templates/unfold/helpers/pagination_infinite.html,sha256=QyHcYb36CeuiwpukC0Y553UC4LU2tPolGos-0mh7WP0,557
225
226
  unfold/templates/unfold/helpers/pagination_inline.html,sha256=wFuXDvW1p-9OF1FSlOERkhP1Jt1WLzNfN7UkqsHtOQ4,1414
226
- unfold/templates/unfold/helpers/search.html,sha256=Pu2hxLGkN_NA-BU8_t4E7Q6uaY6hYTLoD8NZHyrcCaQ,1549
227
- unfold/templates/unfold/helpers/search_results.html,sha256=pQx7KoDMapWDusV88qe5hxlxicfP-S9iacji1Hq41Kc,661
228
- unfold/templates/unfold/helpers/site_branding.html,sha256=_pUyOvdjlV624eRq0wjpJkgXpn9DCDGc-0U6Mw0FupI,266
227
+ unfold/templates/unfold/helpers/popup_header.html,sha256=IDR9B0OO6v6TvJggeof-OMGJ4cYK2INStU_2a1AlWfM,1325
228
+ unfold/templates/unfold/helpers/search.html,sha256=Eo59yc7wRlZ-Ee-AuQCSi-CfBUXUnLBMiSQO8uxaUoo,1772
229
+ unfold/templates/unfold/helpers/search_results.html,sha256=awd6DWTLILIBnx-QkwN7my8IncTN9BfE8jHm7OibgoM,846
230
+ unfold/templates/unfold/helpers/shortcut.html,sha256=gVoXCDwEpbjxLilJ3QEoFLWmFlH18-vgoWdHv6aRLfQ,199
231
+ unfold/templates/unfold/helpers/site_branding.html,sha256=_hhWQZqUrMYGqRJRpeANjbRJPfCROPZkQLZLV7FiRk8,268
229
232
  unfold/templates/unfold/helpers/site_dropdown.html,sha256=UwGFImzujCt20M4_WZt_T9TjeqVSEattYtLXHq57bcY,910
230
233
  unfold/templates/unfold/helpers/site_icon.html,sha256=q9YynbaAZsEXKXT3SDZy54iSdjUwR6i2vo0AFyllGQ0,1490
231
234
  unfold/templates/unfold/helpers/site_logo.html,sha256=S_QJoT2qh0xw0ciaKxoT4GJ6QIH5eqgRSC0abbWWkOI,423
232
235
  unfold/templates/unfold/helpers/submit.html,sha256=LaJdnSDzucH1CpWNCLfqHe_tCcCBMLap8c9ysY2q1HU,211
233
- unfold/templates/unfold/helpers/tab_action.html,sha256=cy4JxV-wfXv9tNOTgsWXuj1bc8gT_CRy6tZFVATUZ-U,3346
236
+ unfold/templates/unfold/helpers/tab_action.html,sha256=mJd87_2qkSNQEwDZZCDkvll5ZbizBkPxWFnBR-kH89o,3431
234
237
  unfold/templates/unfold/helpers/tab_actions.html,sha256=Ir0HFxNAdZWdE6GuxaanSScNYONft0lNB1sZZcKMS5Q,685
235
238
  unfold/templates/unfold/helpers/tab_items.html,sha256=5kZcU7R9tZKKxVLahp2siZpZf7FhrluBH1dIAIaWoAg,3377
236
239
  unfold/templates/unfold/helpers/tab_list.html,sha256=mprad7Fu5ms1qGqjDl9HMmtfUodk43smd3IjagYOyr0,452
@@ -263,17 +266,17 @@ unfold/templates/unfold/widgets/url.html,sha256=IRLgW44VTKN7UrSWeywJwaxQhfG5jhhX
263
266
  unfold/templates/unfold_crispy/display_form.html,sha256=tGyr8hvMlnKkm2ILbVj0enj6IrjtqiKo6nO9Z-zHE2Q,270
264
267
  unfold/templates/unfold_crispy/errors.html,sha256=bzTXuZh_UkQLb4sPaa0En5Uopveoe573TaEOM9OQVcw,132
265
268
  unfold/templates/unfold_crispy/errors_formset.html,sha256=D52cx_PmIF9KSTO8WmQu0m2atpDfLIt79SPKz9LmjSE,136
266
- unfold/templates/unfold_crispy/field.html,sha256=K8B4K28oMI914QiD_21g6NO_86_9T66t7Amxomja12c,1681
269
+ unfold/templates/unfold_crispy/field.html,sha256=yOxniE7kAzzPRl8sHH5hHKzSoCYKfJTNeEngoTBHW3U,2079
267
270
  unfold/templates/unfold_crispy/inputs.html,sha256=6aMXsUY26q_JcIVYgd6X4lwbwbagWj68KHyAYk_fCN4,238
268
271
  unfold/templates/unfold_crispy/layout/attrs.html,sha256=LsLlfKenzHKl6n25m4Ers2NepLSA_RBy9AqezKZ7rH8,173
269
272
  unfold/templates/unfold_crispy/layout/baseinput.html,sha256=GjMxXoqpnxCPkPC1E3v_crzlxDb_hHMf_UgJYfqSsYE,440
270
273
  unfold/templates/unfold_crispy/layout/button.html,sha256=evlO80en9FkbW3UayLPTNUZXAYvgr3slSAsGPKXs96M,67
271
274
  unfold/templates/unfold_crispy/layout/buttonholder.html,sha256=ruHqViROk7nh4luckA8-mcfmnYBqsVM85e8j0rOi3cU,415
272
- unfold/templates/unfold_crispy/layout/checkbox.html,sha256=V1YGDcYfn4spUHx6M5ux8fzfY7vrWCPCO2UfqFyAKos,769
275
+ unfold/templates/unfold_crispy/layout/checkbox.html,sha256=wyx8RdcRI6YSCxAOl2kKd82rCuKnGwDaVt2qA751FR0,1707
273
276
  unfold/templates/unfold_crispy/layout/column.html,sha256=Bob4xRcbJOHScDjSjLMRIMNf4lonNmm8F_JOm2azTik,172
274
277
  unfold/templates/unfold_crispy/layout/div.html,sha256=RE9qQ2w2I2zpi7Z7xzVmVO03UXq0yZvMw-W7rVJkEdw,174
275
278
  unfold/templates/unfold_crispy/layout/field_errors.html,sha256=N0eNJo4OvYzFHPD6vX2gSZWabm46W1GP011sd_dua1I,291
276
- unfold/templates/unfold_crispy/layout/fieldset.html,sha256=hbbJVTNUOwFoBtpFMpqGaf-I4cXnQZEG5s91EUxBUzY,654
279
+ unfold/templates/unfold_crispy/layout/fieldset.html,sha256=g1ZIjrdkO3vdoaAj0KO43kss3VJvueh2f7HuP2Z5yLE,764
277
280
  unfold/templates/unfold_crispy/layout/fieldset_subheader.html,sha256=fAD3wa9JiuYJwbo8bsmW-LhMw72V2j27EkRgy0G6Kc8,209
278
281
  unfold/templates/unfold_crispy/layout/help_text.html,sha256=FY0UQv5FsoOFhrqvbILEfZE78Hj30r73YHCtg_MWNeY,207
279
282
  unfold/templates/unfold_crispy/layout/help_text_and_errors.html,sha256=Um14wIg0FHthNM0mKE9VdptTrC-lTTcrDUO-UbbXxhY,108
@@ -285,13 +288,13 @@ unfold/templates/unfold_crispy/uni_form.html,sha256=l9UNCUrIycgJ0p_B6qhtO_YxdARy
285
288
  unfold/templates/unfold_crispy/whole_uni_form.html,sha256=ufXRKCIGqkqKFOsh166rpKUnHpFMyBV4eYUCRhs3iws,475
286
289
  unfold/templates/unfold_crispy/whole_uni_formset.html,sha256=CYksfG2hRUdi5n691KW2ih-FfBxpOU4qVBfbOvcu1zs,873
287
290
  unfold/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
288
- unfold/templatetags/unfold.py,sha256=Z4VYkTigW2DEURcyq8E7d8EkvCWl_TG_mNDmveE5K6k,18141
289
- unfold/templatetags/unfold_list.py,sha256=ayShOYEXcV3o7wKt3t2aFTWvg62Mb-WGlxjYVGgk3a0,14344
291
+ unfold/templatetags/unfold.py,sha256=rk4f43w954HawFjhfwqY3zSwNRUGcSfR7FSYCko8_aE,18179
292
+ unfold/templatetags/unfold_list.py,sha256=WWQSCM4QmQMr8YddA4krFztuuUXo2y28RA7jZfOiewE,14415
290
293
  unfold/typing.py,sha256=i7LM2LiwYTAjT5-OLDUPVn5b9X-DMmHnjlZG2toWwSE,692
291
294
  unfold/utils.py,sha256=lXKkvhaTxoTtd4p3bB0wHIZD26md6XzBcDkPL5bJGH8,6191
292
295
  unfold/views.py,sha256=FuYnMrlg6SegLUDDN6An__yZj8rchD_iBK8myieYhkA,1492
293
- unfold/widgets.py,sha256=kBQ94omaglt0csjNbX4VFWL1rjb0vBFZeC2X6HOvHuY,24484
294
- django_unfold-0.60.0.dist-info/LICENSE.md,sha256=Ltk_quRyyvV3J5v3brtOqmibeZSw2Hrb8bY1W3ya0Ik,1077
295
- django_unfold-0.60.0.dist-info/METADATA,sha256=WUTbBoxXiw3YcvlNnKH5WzMcS0SFxpus6JweY1mUfPQ,8092
296
- django_unfold-0.60.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
297
- django_unfold-0.60.0.dist-info/RECORD,,
296
+ unfold/widgets.py,sha256=S_HEcRNml7E4PqwYUpY58QIP7X6KH-5EHRHwEploCrU,24557
297
+ django_unfold-0.61.0.dist-info/LICENSE.md,sha256=Ltk_quRyyvV3J5v3brtOqmibeZSw2Hrb8bY1W3ya0Ik,1077
298
+ django_unfold-0.61.0.dist-info/METADATA,sha256=4YnEukbJQi-U2XT4-O4yzA5RlXDP-5YoO5Du-uSqwFA,8445
299
+ django_unfold-0.61.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
300
+ django_unfold-0.61.0.dist-info/RECORD,,
unfold/admin.py CHANGED
@@ -192,9 +192,9 @@ class ModelAdmin(BaseModelAdminMixin, ActionModelAdminMixin, BaseModelAdmin):
192
192
  self, request: HttpRequest, obj: Model, inline: InlineModelAdmin, prefix: str
193
193
  ) -> dict[str, Any]:
194
194
  formset_kwargs = super().get_formset_kwargs(request, obj, inline, prefix)
195
- formset_kwargs["request"] = request
196
195
 
197
196
  if hasattr(inline, "per_page"):
197
+ formset_kwargs["request"] = request
198
198
  formset_kwargs["per_page"] = inline.per_page
199
199
 
200
200
  return formset_kwargs
@@ -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 %}
@@ -1,25 +1,23 @@
1
1
  {% load i18n %}
2
2
 
3
- <div {% if not is_popup %}id="submit-row"{% endif %} class="relative z-20 {% if not is_popup %} mt-20 lg:mt-8{% endif %}">
4
- <div class="{% if not is_popup %}bottom-0 fixed left-0 right-0{% endif %}" {% if not is_popup %}x-bind:class="{'xl:left-0': !sidebarDesktopOpen, 'xl:left-72': sidebarDesktopOpen}"{% endif %}>
5
- <div class="bg-white dark:bg-base-900 {% if not is_popup %}border-t border-base-200 px-4 py-4 relative scrollable-top dark:border-base-800{% endif %}">
6
- <div class="container flex flex-col-reverse gap-3 items-center mx-auto lg:flex-row-reverse">
7
- {% if not revert_disabled %}
8
- <button type="submit" class="bg-primary-600 block border border-transparent font-medium px-3 py-2 rounded-default text-sm text-white w-full lg:w-auto" name="_save" {{ onclick_attrib }}>
9
- {% trans 'Revert' %}
10
- </button>
11
- {% endif %}
3
+ <div {% if not is_popup %}id="submit-row"{% endif %} class="relative lg:sticky lg:bottom-0 z-40">
4
+ <div class="backdrop-blur-xs bg-white/80 rounded-b-default pb-4 px-4 dark:bg-base-900/80 {% if not is_popup %}lg:border-t lg:border-base-200 relative lg:scrollable-top lg:py-0 dark:border-base-800{% endif %}">
5
+ <div class="flex flex-col-reverse gap-3 items-center mx-auto lg:flex-row-reverse container lg:h-[64px]">
6
+ {% if not revert_disabled %}
7
+ <button type="submit" form="{{ opts.model_name }}_form" class="bg-primary-600 block border border-transparent cursor-pointer font-medium px-3 py-2 rounded-default text-sm text-white w-full lg:w-auto" name="_save" {{ onclick_attrib }}>
8
+ {% trans 'Revert' %}
9
+ </button>
10
+ {% endif %}
12
11
 
13
- {% if change_history %}
14
- <button type="submit" class="bg-primary-600 block border border-transparent font-medium px-3 py-2 rounded-default text-sm text-white w-full lg:w-auto" name="_change_history" {{ onclick_attrib }}>
15
- {% trans 'Change History' %}
16
- </button>
17
- {% endif %}
12
+ {% if change_history %}
13
+ <button type="submit" form="{{ opts.model_name }}_form" class="bg-primary-600 block border border-transparent cursor-pointer font-medium px-3 py-2 rounded-default text-sm text-white w-full lg:w-auto" name="_change_history" {{ onclick_attrib }}>
14
+ {% trans 'Change History' %}
15
+ </button>
16
+ {% endif %}
18
17
 
19
- <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">
20
- {% trans 'Close' %}
21
- </a>
22
- </div>
18
+ <a href="{{ history_url }}" class="border border-base-200 font-medium mr-auto px-3 py-2 rounded-default text-sm text-base-500 text-center transition-all w-full hover:bg-base-50 lg:block lg:w-auto dark:border-base-700 dark:text-font-default-dark dark:hover:text-base-200 dark:hover:bg-base-900">
19
+ {% trans 'Close' %}
20
+ </a>
23
21
  </div>
24
22
  </div>
25
23
  </div>
unfold/forms.py CHANGED
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Generator
2
- from typing import Optional
2
+ from typing import Optional, Union
3
3
 
4
4
  from django import forms
5
5
  from django.contrib.admin.forms import (
@@ -181,7 +181,7 @@ class Fieldset(BaseFieldset):
181
181
  class Fieldline(BaseFieldline):
182
182
  def __iter__(
183
183
  self,
184
- ) -> Generator["UnfoldAdminReadonlyField | 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
 
unfold/sites.py CHANGED
@@ -170,6 +170,7 @@ class UnfoldAdminSite(AdminSite):
170
170
  ) -> TemplateResponse:
171
171
  query = request.GET.get("s").lower()
172
172
  app_list = super().get_app_list(request)
173
+ apps = []
173
174
  results = []
174
175
 
175
176
  if query in EMPTY_VALUES:
@@ -177,7 +178,7 @@ class UnfoldAdminSite(AdminSite):
177
178
 
178
179
  for app in app_list:
179
180
  if query in app["name"].lower():
180
- 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(