fastapi-admin-kit 0.3.2__tar.gz → 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. fastapi_admin_kit-0.4.0/CHANGELOG.md +115 -0
  2. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/PKG-INFO +11 -6
  3. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/README.md +2 -4
  4. fastapi_admin_kit-0.4.0/example/custom_templates/admin/list.html +28 -0
  5. fastapi_admin_kit-0.4.0/example/custom_templates/admin/products/list.html +27 -0
  6. fastapi_admin_kit-0.4.0/example/example_ai.py +930 -0
  7. fastapi_admin_kit-0.4.0/example/example_custom_templates.py +251 -0
  8. fastapi_admin_kit-0.4.0/example/example_notifications.py +492 -0
  9. fastapi_admin_kit-0.4.0/example/validate_ws.py +74 -0
  10. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/__init__.py +46 -1
  11. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/admin_config.py +5 -0
  12. fastapi_admin_kit-0.4.0/fastapi_admin_kit/admin/admin_database.py +133 -0
  13. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/admin_template.py +10 -8
  14. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/builtin_models.py +119 -3
  15. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/core.py +430 -47
  16. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/state.py +2 -4
  17. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/__init__.py +37 -0
  18. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/agent.py +119 -0
  19. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/attachments.py +136 -0
  20. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/backends/__init__.py +129 -0
  21. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/backends/pydantic_ai_backend.py +699 -0
  22. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/backends/repairer.py +381 -0
  23. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/builtin_tools.py +105 -0
  24. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/config.py +126 -0
  25. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/conversation.py +350 -0
  26. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/dashboard.py +298 -0
  27. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/data_access.py +142 -0
  28. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/deps.py +186 -0
  29. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/errors.py +17 -0
  30. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/model_agent.py +419 -0
  31. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/plugin.py +73 -0
  32. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/prompts.py +126 -0
  33. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/serialization.py +71 -0
  34. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/service.py +851 -0
  35. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/tools.py +110 -0
  36. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/ui/__init__.py +11 -0
  37. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/ui/native.py +52 -0
  38. fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/usage.py +126 -0
  39. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/auth.py +7 -12
  40. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/crud.py +5 -0
  41. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/roles.py +2 -4
  42. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/search.py +2 -2
  43. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/backend.py +6 -4
  44. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/identity.py +4 -0
  45. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/mixins.py +7 -6
  46. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/permissions.py +4 -4
  47. fastapi_admin_kit-0.4.0/fastapi_admin_kit/backends/__init__.py +109 -0
  48. fastapi_admin_kit-0.4.0/fastapi_admin_kit/backends/memory.py +600 -0
  49. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/backends/protocols.py +82 -2
  50. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/backends/sqlalchemy.py +350 -34
  51. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/__init__.py +2 -0
  52. fastapi_admin_kit-0.4.0/fastapi_admin_kit/config/ai_chat.py +27 -0
  53. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/database.py +11 -2
  54. fastapi_admin_kit-0.4.0/fastapi_admin_kit/db.py +150 -0
  55. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/base.py +1 -2
  56. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/csv.py +1 -2
  57. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/form/pipeline.py +3 -4
  58. fastapi_admin_kit-0.4.0/fastapi_admin_kit/migrations/__init__.py +5 -0
  59. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/migrations/models.py +25 -0
  60. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/modeladmin.py +35 -0
  61. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/__init__.py +74 -0
  62. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/config.py +116 -0
  63. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/dispatcher.py +203 -0
  64. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/email.py +137 -0
  65. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/models.py +15 -0
  66. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/plugin.py +49 -0
  67. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/realtime.py +136 -0
  68. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/router.py +389 -0
  69. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/schemas.py +75 -0
  70. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/service.py +554 -0
  71. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/sms/__init__.py +22 -0
  72. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/sms/base.py +66 -0
  73. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/sms/twilio.py +128 -0
  74. fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/store.py +327 -0
  75. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/cursor.py +5 -4
  76. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/dynamic.py +4 -2
  77. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/offset.py +5 -4
  78. fastapi_admin_kit-0.4.0/fastapi_admin_kit/py.typed +0 -0
  79. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/registry/core.py +25 -14
  80. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/router.py +43 -10
  81. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/schemas/builtin.py +229 -0
  82. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/css/admin.css +172 -0
  83. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/js/admin.js +245 -0
  84. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/admin/base_detail.html +86 -0
  85. fastapi_admin_kit-0.3.2/fastapi_admin_kit/templates/pages/form.html → fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/admin/base_form.html +24 -1
  86. fastapi_admin_kit-0.3.2/fastapi_admin_kit/templates/pages/list.html → fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/admin/base_list.html +27 -4
  87. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/base.html +3 -0
  88. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/agents.html +228 -0
  89. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/chat.html +1152 -0
  90. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/chat_htmx.html +198 -0
  91. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/dashboard.html +153 -0
  92. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/logs.html +1098 -0
  93. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/tools.html +197 -0
  94. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/detail.html +2 -0
  95. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/form.html +2 -0
  96. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/list.html +2 -0
  97. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/partials/ai_chat_widget.html +656 -0
  98. fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/partials/detail_field.html +59 -0
  99. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/topbar.html +54 -4
  100. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/audit.py +1 -1
  101. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/class_views.py +91 -14
  102. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/context.py +2 -4
  103. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/dashboard.py +6 -6
  104. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/form.py +11 -1
  105. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/list_context.py +2 -4
  106. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/profile.py +2 -3
  107. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/renderers.py +84 -9
  108. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/roles.py +7 -14
  109. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/sidebar.py +4 -6
  110. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/totp.py +12 -8
  111. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/users.py +4 -4
  112. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/mkdocs.yml +1 -0
  113. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/pyproject.toml +10 -0
  114. fastapi_admin_kit-0.4.0/scripts/generate_changelog.py +275 -0
  115. fastapi_admin_kit-0.4.0/test_on_complete.py +2 -0
  116. fastapi_admin_kit-0.3.2/CHANGELOG.md +0 -51
  117. fastapi_admin_kit-0.3.2/fastapi_admin_kit/admin/admin_database.py +0 -279
  118. fastapi_admin_kit-0.3.2/fastapi_admin_kit/backends/__init__.py +0 -63
  119. fastapi_admin_kit-0.3.2/fastapi_admin_kit/db.py +0 -161
  120. fastapi_admin_kit-0.3.2/fastapi_admin_kit/templates/pages/detail.html +0 -183
  121. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/.gitignore +0 -0
  122. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/LICENSE +0 -0
  123. /fastapi_admin_kit-0.3.2/fastapi_admin_kit/py.typed → /fastapi_admin_kit-0.4.0/example/__init__.py +0 -0
  124. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/actions/__init__.py +0 -0
  125. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/actions/base.py +0 -0
  126. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/actions/registry.py +0 -0
  127. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/__init__.py +0 -0
  128. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/admin_router.py +0 -0
  129. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/decorators.py +0 -0
  130. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/__init__.py +0 -0
  131. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/deps.py +0 -0
  132. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/schema_generator.py +0 -0
  133. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/schemas.py +0 -0
  134. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/__init__.py +0 -0
  135. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/context.py +0 -0
  136. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/diff.py +0 -0
  137. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/event_bus.py +0 -0
  138. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/events.py +0 -0
  139. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/listener.py +0 -0
  140. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/logger.py +0 -0
  141. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/middleware.py +0 -0
  142. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/models.py +0 -0
  143. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/sqlalchemy_logger.py +0 -0
  144. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/__init__.py +0 -0
  145. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/csrf.py +0 -0
  146. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/dependencies.py +0 -0
  147. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/hasher.py +0 -0
  148. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/models.py +0 -0
  149. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/password.py +0 -0
  150. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/protocol.py +0 -0
  151. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/ratelimit.py +0 -0
  152. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/router.py +0 -0
  153. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/session.py +0 -0
  154. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/totp.py +0 -0
  155. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/types.py +0 -0
  156. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/views.py +0 -0
  157. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/__init__.py +0 -0
  158. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/__main__.py +0 -0
  159. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/helpers.py +0 -0
  160. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/migrate.py +0 -0
  161. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/permissions.py +0 -0
  162. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/scaffold.py +0 -0
  163. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/user.py +0 -0
  164. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/audit.py +0 -0
  165. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/auth.py +0 -0
  166. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/behavior.py +0 -0
  167. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/nav.py +0 -0
  168. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/storage.py +0 -0
  169. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/theme.py +0 -0
  170. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/ui.py +0 -0
  171. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/dashboard/__init__.py +0 -0
  172. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/exceptions.py +0 -0
  173. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/__init__.py +0 -0
  174. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/excel.py +0 -0
  175. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/registry.py +0 -0
  176. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/field_types.py +0 -0
  177. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/filters/__init__.py +0 -0
  178. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/filters/base.py +0 -0
  179. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/filters/registry.py +0 -0
  180. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/flash.py +0 -0
  181. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/form/__init__.py +0 -0
  182. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/form/types.py +0 -0
  183. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inline.py +0 -0
  184. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inspection/__init__.py +0 -0
  185. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inspection/registry.py +0 -0
  186. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inspection/types.py +0 -0
  187. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inspection.py +0 -0
  188. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/models/__init__.py +0 -0
  189. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/models/base.py +0 -0
  190. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/nav.py +0 -0
  191. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/__init__.py +0 -0
  192. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/base.py +0 -0
  193. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/plugins/__init__.py +0 -0
  194. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/registry/__init__.py +0 -0
  195. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/registry/validation.py +0 -0
  196. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/registry.py +0 -0
  197. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/schemas/__init__.py +0 -0
  198. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/schemas/schema.py +0 -0
  199. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/search_utils.py +0 -0
  200. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/css/presets.css +0 -0
  201. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/css/tokens.css +0 -0
  202. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/css/variables.css +0 -0
  203. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/icons/heroicons.svg +0 -0
  204. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/js/htmx-config.js +0 -0
  205. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/storage/__init__.py +0 -0
  206. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/storage/base.py +0 -0
  207. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/storage/local.py +0 -0
  208. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/macros/form_fields.html +0 -0
  209. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/macros/icons.html +0 -0
  210. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/macros/table.html +0 -0
  211. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/macros/widgets.html +0 -0
  212. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/2fa/setup.html +0 -0
  213. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/2fa/verify.html +0 -0
  214. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/403.html +0 -0
  215. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/audit_detail.html +0 -0
  216. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/audit_log.html +0 -0
  217. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/dashboard.html +0 -0
  218. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/login.html +0 -0
  219. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/profile/password.html +0 -0
  220. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/profile/profile.html +0 -0
  221. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/role_form.html +0 -0
  222. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/roles/form.html +0 -0
  223. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/roles/list.html +0 -0
  224. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/roles.html +0 -0
  225. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/search.html +0 -0
  226. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/settings/theme.html +0 -0
  227. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/users/form.html +0 -0
  228. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/users/list.html +0 -0
  229. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/_inline_edit_row.html +0 -0
  230. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/command_palette.html +0 -0
  231. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/field_wrapper.html +0 -0
  232. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/flash_messages.html +0 -0
  233. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/head.html +0 -0
  234. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/head_minimal.html +0 -0
  235. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/inline_edit_form.html +0 -0
  236. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/inline_stacked.html +0 -0
  237. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/inline_tabular.html +0 -0
  238. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/list_table.html +0 -0
  239. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/mobile_backdrop.html +0 -0
  240. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/pagination.html +0 -0
  241. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/perm_select_widget.html +0 -0
  242. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/permission_widget.html +0 -0
  243. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/scripts.html +0 -0
  244. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/sidebar.html +0 -0
  245. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/types.py +0 -0
  246. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/ui/__init__.py +0 -0
  247. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/ui/types.py +0 -0
  248. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/validation.py +0 -0
  249. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/__init__.py +0 -0
  250. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/bulk.py +0 -0
  251. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/delete.py +0 -0
  252. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/extra.py +0 -0
  253. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/factory.py +0 -0
  254. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/file_handler.py +0 -0
  255. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/list.py +0 -0
  256. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/model_saver.py +0 -0
  257. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/protocols.py +0 -0
  258. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/search.py +0 -0
  259. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/settings.py +0 -0
  260. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views.py +0 -0
  261. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/__init__.py +0 -0
  262. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/base.py +0 -0
  263. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/inputs.py +0 -0
  264. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/registry.py +0 -0
  265. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/relation.py +0 -0
  266. {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/resolver.py +0 -0
@@ -0,0 +1,115 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Changed
11
+ - **AI is now gated behind `ai_enabled` (default `False`).** When AI is
12
+ disabled, the `admin_ai_*` tables are not created, and the AI models, nav
13
+ group, and routes are not registered in the admin UI or the JSON API.
14
+ Notifications, auth, roles, audit, and login-attempt models are unaffected.
15
+ - Internal tables (`admin_refresh_tokens`, `admin_user_permissions`,
16
+ `admin_user_totp`, `admin_ai_attachments`) are no longer exposed over the
17
+ JSON API (previously a latent security hole). They remain hidden from the
18
+ sidebar.
19
+
20
+ ### Added
21
+ - `Admin.setup()` now logs a non-blocking preflight warning naming any missing
22
+ `admin_ai_*` tables (with the command to fix them) when `ai_enabled=True`
23
+ but the schema is absent (Alembic / `SKIP_CREATE_TABLES=true` mode).
24
+ - `fastapi_admin_kit.schemas.builtin.AI_TABLE_NAMES` and
25
+ `INTERNAL_TABLE_NAMES` constants for gating/identification.
26
+ - `AdminRegistry.auto_discover(exclude_tables=...)` accepts a set of table
27
+ names to skip during discovery.
28
+
29
+ ## [0.3.2] - 2026-07-31
30
+
31
+ ### Changed
32
+ - Added Alembic database migrations so schema changes can be versioned and
33
+ applied incrementally instead of relying solely on auto-create
34
+ ([#39](https://github.com/borhanst/fastapi-admin-kit/pull/39)).
35
+
36
+ ## [0.3.1] - 2026-07-29
37
+
38
+ ### Added
39
+ - CSV export and import support for models, enabling bulk data download and
40
+ upload from the admin UI
41
+ ([#38](https://github.com/borhanst/fastapi-admin-kit/pull/38)).
42
+
43
+ ## [0.3.0] - 2026-07-28
44
+
45
+ ### Added
46
+ - Per-model permission updates and refinements to the RBAC model
47
+ ([#20](https://github.com/borhanst/fastapi-admin-kit/pull/20)).
48
+ - Inline formset support for `ModelAdmin`, allowing related records to be
49
+ edited on the same page
50
+ ([#21](https://github.com/borhanst/fastapi-admin-kit/pull/21)).
51
+ - Adapter registration wired directly into `Admin`
52
+ ([#35](https://github.com/borhanst/fastapi-admin-kit/pull/35)).
53
+ - Schema-first + protocol hybrid approach for built-in admin models
54
+ ([#34](https://github.com/borhanst/fastapi-admin-kit/pull/34)).
55
+
56
+ ### Changed
57
+ - Decoupled `DefaultQueryProvider`, `search_utils`, and the `Filter` classes
58
+ from SQLAlchemy, improving backend portability
59
+ ([#33](https://github.com/borhanst/fastapi-admin-kit/pull/33)).
60
+
61
+ ### Fixed
62
+ - Assorted bug fixes and stability improvements
63
+ ([#36](https://github.com/borhanst/fastapi-admin-kit/pull/36)).
64
+
65
+ ## [0.2.1] - 2026-07-21
66
+
67
+ ### Fixed
68
+ - Corrected a user-permission model bug and adjusted how permissions are
69
+ stored and evaluated
70
+ ([#19](https://github.com/borhanst/fastapi-admin-kit/pull/19)).
71
+
72
+ ## [0.2.0] - 2026-07-13
73
+
74
+ ### Added
75
+ - Authentication subsystem with session-based login, logout, and protected
76
+ routes ([#14](https://github.com/borhanst/fastapi-admin-kit/pull/14)).
77
+
78
+ ### Fixed
79
+ - Resolved a documentation build failure
80
+ ([#15](https://github.com/borhanst/fastapi-admin-kit/pull/15)).
81
+
82
+ ## [0.1.2] - 2026-07-09
83
+
84
+ ### Added
85
+ - CLI commands for project scaffolding and user management
86
+ ([#10](https://github.com/borhanst/fastapi-admin-kit/pull/10)).
87
+
88
+ ### Fixed
89
+ - Added support for UUID primary keys on models
90
+ ([#12](https://github.com/borhanst/fastapi-admin-kit/pull/12)).
91
+
92
+ ## [0.1.1] - 2026-07-09
93
+
94
+ ### Added
95
+ - Database configuration and connection handling
96
+ ([#1](https://github.com/borhanst/fastapi-admin-kit/pull/1)).
97
+ - Inline editing — edit records directly from the list view
98
+ ([#9](https://github.com/borhanst/fastapi-admin-kit/pull/9)).
99
+
100
+ ### Changed
101
+ - Renamed the CLI from `fastapi-admin-kit` to `fak-admin`
102
+ ([#3](https://github.com/borhanst/fastapi-admin-kit/pull/3)).
103
+
104
+ ### Fixed
105
+ - Use `StrEnum` for `DatabaseType` for safer, string-compatible enums
106
+ ([#4](https://github.com/borhanst/fastapi-admin-kit/pull/4)).
107
+ - Updated emoji configuration in the markdown extensions
108
+ ([#5](https://github.com/borhanst/fastapi-admin-kit/pull/5)).
109
+
110
+ ## [0.1.0] - 2026-07-08
111
+
112
+ ### Added
113
+ - Initial release of FastAPI Admin Kit: a drop-in admin panel for FastAPI +
114
+ SQLAlchemy + SQLModel applications with auto-discovery, RBAC, audit logging,
115
+ and a modern UI.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: fastapi-admin-kit
3
- Version: 0.3.2
3
+ Version: 0.4.0
4
4
  Summary: Drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps
5
5
  Project-URL: Homepage, https://github.com/borhanst/fastapi-admin-kit
6
6
  Project-URL: Documentation, https://borhanst.github.io/fastapi-admin-kit/
@@ -31,6 +31,11 @@ Requires-Dist: jinja2>=3.1.0
31
31
  Requires-Dist: pre-commit>=4.6.0
32
32
  Requires-Dist: python-multipart>=0.0.9
33
33
  Requires-Dist: sqlalchemy>=2.0.0
34
+ Provides-Extra: ai
35
+ Requires-Dist: pydantic-ai[groq]>=2.0.0; extra == 'ai'
36
+ Provides-Extra: ai-gemini
37
+ Requires-Dist: google-genai>=1.0.0; extra == 'ai-gemini'
38
+ Requires-Dist: pydantic-ai>=2.0.0; extra == 'ai-gemini'
34
39
  Provides-Extra: alembic
35
40
  Requires-Dist: alembic>=1.13.0; extra == 'alembic'
36
41
  Provides-Extra: dev
@@ -53,6 +58,8 @@ Requires-Dist: pyjwt>=2.13.0; extra == 'full'
53
58
  Requires-Dist: uvicorn>=0.30.0; extra == 'full'
54
59
  Provides-Extra: mysql
55
60
  Requires-Dist: aiomysql>=0.2.0; extra == 'mysql'
61
+ Provides-Extra: notifications
62
+ Requires-Dist: twilio>=8.9.0; extra == 'notifications'
56
63
  Provides-Extra: postgres
57
64
  Requires-Dist: asyncpg>=0.29.0; extra == 'postgres'
58
65
  Provides-Extra: sqlmodel
@@ -66,7 +73,7 @@ Description-Content-Type: text/markdown
66
73
  [![License](https://img.shields.io/pypi/l/fastapi-admin-kit.svg)](https://github.com/borhanst/fastapi-admin-kit/blob/main/LICENSE)
67
74
  [![Tests](https://github.com/borhanst/fastapi-admin-kit/actions/workflows/tests.yml/badge.svg)](https://github.com/borhanst/fastapi-admin-kit/actions/workflows/tests.yml)
68
75
 
69
- A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django Unfold.
76
+ A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django Admin.
70
77
 
71
78
  ![FastAPI Admin Kit Dashboard](docs/assets/images/admin-dashboard.png)
72
79
 
@@ -84,7 +91,7 @@ A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Djan
84
91
  - **17 Built-in Widgets** — TextInput, Toggle, DatePicker, FileUpload, Wysiwyg, and more
85
92
  - **Inline Editing** — Edit records directly from list view with 3-dot action menu
86
93
  - **Command Palette** — `Cmd+K` / `Ctrl+K` global search across models and fields
87
- - **JSON API** — REST endpoints with JWT token auth for external frontends
94
+ <!--- **JSON API** — REST endpoints with JWT token auth for external frontends-->
88
95
  - **Dashboard** — Configurable stat cards, charts, tables, and progress bars
89
96
  - **CLI Tools** — `fak-admin` / `fak` for superuser management and project scaffolding
90
97
  - **Pagination** — Offset, cursor, or dynamic strategies per model
@@ -248,7 +255,6 @@ All commands accept `-d DATABASE_URL` or read the `DATABASE_URL` environment var
248
255
 
249
256
  ```python
250
257
  from fastapi_admin_kit import Admin
251
- from fastapi_admin_kit.config import ThemeConfig
252
258
 
253
259
  admin = Admin(
254
260
  app=app,
@@ -257,7 +263,6 @@ admin = Admin(
257
263
  secret_key=SECRET_KEY,
258
264
  title="My Admin", # Admin panel title
259
265
  admin_path="/admin", # URL prefix
260
- dark_mode_default=False, # Dark mode on by default
261
266
  # Auth
262
267
  auth_backend=BuiltinAuthBackend(),
263
268
  # Environment badge
@@ -5,7 +5,7 @@
5
5
  [![License](https://img.shields.io/pypi/l/fastapi-admin-kit.svg)](https://github.com/borhanst/fastapi-admin-kit/blob/main/LICENSE)
6
6
  [![Tests](https://github.com/borhanst/fastapi-admin-kit/actions/workflows/tests.yml/badge.svg)](https://github.com/borhanst/fastapi-admin-kit/actions/workflows/tests.yml)
7
7
 
8
- A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django Unfold.
8
+ A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django Admin.
9
9
 
10
10
  ![FastAPI Admin Kit Dashboard](docs/assets/images/admin-dashboard.png)
11
11
 
@@ -23,7 +23,7 @@ A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Djan
23
23
  - **17 Built-in Widgets** — TextInput, Toggle, DatePicker, FileUpload, Wysiwyg, and more
24
24
  - **Inline Editing** — Edit records directly from list view with 3-dot action menu
25
25
  - **Command Palette** — `Cmd+K` / `Ctrl+K` global search across models and fields
26
- - **JSON API** — REST endpoints with JWT token auth for external frontends
26
+ <!--- **JSON API** — REST endpoints with JWT token auth for external frontends-->
27
27
  - **Dashboard** — Configurable stat cards, charts, tables, and progress bars
28
28
  - **CLI Tools** — `fak-admin` / `fak` for superuser management and project scaffolding
29
29
  - **Pagination** — Offset, cursor, or dynamic strategies per model
@@ -187,7 +187,6 @@ All commands accept `-d DATABASE_URL` or read the `DATABASE_URL` environment var
187
187
 
188
188
  ```python
189
189
  from fastapi_admin_kit import Admin
190
- from fastapi_admin_kit.config import ThemeConfig
191
190
 
192
191
  admin = Admin(
193
192
  app=app,
@@ -196,7 +195,6 @@ admin = Admin(
196
195
  secret_key=SECRET_KEY,
197
196
  title="My Admin", # Admin panel title
198
197
  admin_path="/admin", # URL prefix
199
- dark_mode_default=False, # Dark mode on by default
200
198
  # Auth
201
199
  auth_backend=BuiltinAuthBackend(),
202
200
  # Environment badge
@@ -0,0 +1,28 @@
1
+ {# custom_templates/admin/list.html — GLOBAL list-view override.
2
+ Extends the built-in admin/base_list.html and replaces the page header with a
3
+ custom banner. Because this template lives in a custom template dir that is
4
+ prepended ahead of the built-ins, it wins over the default admin/list.html
5
+ for every registered model that doesn't provide its own per-model override.
6
+
7
+ To target a single model instead, name the file admin/<table>/list.html (see
8
+ the Product example in example/custom_templates/admin/products/list.html).
9
+ #}
10
+ {% extends "admin/base_list.html" %}
11
+
12
+ {% block list_header %}
13
+ <div class="page-header" style="border: 2px dashed #6366F1; border-radius: 0.75rem; padding: 1rem;">
14
+ <div class="page-header-left">
15
+ <h1 class="page-header-title">{{ registered.verbose_name_plural }}</h1>
16
+ <p class="page-header-subtitle">
17
+ &#10003; Custom template dir override applied — built-in header replaced.
18
+ </p>
19
+ </div>
20
+ <div class="page-header-right" style="display: flex; gap: 0.5rem; align-items: center;">
21
+ {% if permissions.can_create %}
22
+ <a href="{{ admin_path | default('/admin') }}/{{ registered.table_name }}/create" class="btn btn-primary">
23
+ + New {{ registered.verbose_name }}
24
+ </a>
25
+ {% endif %}
26
+ </div>
27
+ </div>
28
+ {% endblock %}
@@ -0,0 +1,27 @@
1
+ {# custom_templates/admin/products/list.html — PER-MODEL list-view override.
2
+ Only applies to the Product model (table "products"). It takes priority over
3
+ the global admin/list.html and the built-in default.
4
+
5
+ Template resolution order (first match wins):
6
+ 1. Explicit admin.list_template
7
+ 2. admin/<table>/list.html <- this file
8
+ 3. admin/list.html <- global override
9
+ 4. pages/list.html <- built-in default
10
+ #}
11
+ {% extends "admin/base_list.html" %}
12
+
13
+ {% block list_header %}
14
+ <div class="page-header" style="border: 2px solid #10B981; border-radius: 0.75rem; padding: 1rem;">
15
+ <div class="page-header-left">
16
+ <h1 class="page-header-title">&#128230; PRODUCT CATALOG (custom template)</h1>
17
+ <p class="page-header-subtitle">This header comes from a per-model template: admin/products/list.html</p>
18
+ </div>
19
+ <div class="page-header-right" style="display: flex; gap: 0.5rem; align-items: center;">
20
+ {% if permissions.can_create %}
21
+ <a href="{{ admin_path | default('/admin') }}/{{ registered.table_name }}/create" class="btn btn-primary">
22
+ + New {{ registered.verbose_name }}
23
+ </a>
24
+ {% endif %}
25
+ </div>
26
+ </div>
27
+ {% endblock %}