fastapi-admin-kit 0.3.1__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.
- fastapi_admin_kit-0.4.0/CHANGELOG.md +115 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/PKG-INFO +13 -6
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/README.md +2 -4
- fastapi_admin_kit-0.4.0/example/custom_templates/admin/list.html +28 -0
- fastapi_admin_kit-0.4.0/example/custom_templates/admin/products/list.html +27 -0
- fastapi_admin_kit-0.4.0/example/example_ai.py +930 -0
- fastapi_admin_kit-0.4.0/example/example_custom_templates.py +251 -0
- fastapi_admin_kit-0.4.0/example/example_notifications.py +492 -0
- fastapi_admin_kit-0.4.0/example/validate_ws.py +74 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/__init__.py +46 -1
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/admin_config.py +5 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/admin/admin_database.py +133 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/admin_template.py +10 -8
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/builtin_models.py +121 -3
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/core.py +440 -51
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/state.py +2 -4
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/__init__.py +37 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/agent.py +119 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/attachments.py +136 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/backends/__init__.py +129 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/backends/pydantic_ai_backend.py +699 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/backends/repairer.py +381 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/builtin_tools.py +105 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/config.py +126 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/conversation.py +350 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/dashboard.py +298 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/data_access.py +142 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/deps.py +186 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/errors.py +17 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/model_agent.py +419 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/plugin.py +73 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/prompts.py +126 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/serialization.py +71 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/service.py +851 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/tools.py +110 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/ui/__init__.py +11 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/ui/native.py +52 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/ai/usage.py +126 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/auth.py +7 -12
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/crud.py +5 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/roles.py +2 -4
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/search.py +2 -2
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/audit/models.py +22 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/backend.py +6 -4
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/identity.py +4 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/mixins.py +7 -6
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/auth/models.py +45 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/permissions.py +4 -4
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/backends/__init__.py +109 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/backends/memory.py +600 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/backends/protocols.py +82 -2
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/backends/sqlalchemy.py +1233 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/__init__.py +1 -1
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/cli/migrate.py +636 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/__init__.py +2 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/config/ai_chat.py +27 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/behavior.py +2 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/database.py +11 -2
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/db.py +150 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/base.py +1 -2
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/csv.py +1 -2
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/form/pipeline.py +3 -4
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/migrations/__init__.py +5 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/migrations/models.py +141 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/modeladmin.py +35 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/__init__.py +74 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/config.py +116 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/dispatcher.py +203 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/email.py +137 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/models.py +15 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/plugin.py +49 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/realtime.py +136 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/router.py +389 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/schemas.py +75 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/service.py +554 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/sms/__init__.py +22 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/sms/base.py +66 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/sms/twilio.py +128 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/notifications/store.py +327 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/cursor.py +5 -4
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/dynamic.py +4 -2
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/offset.py +5 -4
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/py.typed +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/registry/core.py +25 -14
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/router.py +43 -10
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/schemas/builtin.py +488 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/schemas/schema.py +3 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/css/admin.css +172 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/js/admin.js +245 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/admin/base_detail.html +86 -0
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/templates/pages/form.html → fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/admin/base_form.html +24 -1
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/templates/pages/list.html → fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/admin/base_list.html +27 -4
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/base.html +3 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/agents.html +228 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/chat.html +1152 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/chat_htmx.html +198 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/dashboard.html +153 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/logs.html +1098 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/ai/tools.html +197 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/dashboard.html +1 -6
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/detail.html +2 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/form.html +2 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/pages/list.html +2 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/partials/ai_chat_widget.html +656 -0
- fastapi_admin_kit-0.4.0/fastapi_admin_kit/templates/partials/detail_field.html +59 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/sidebar.html +1 -11
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/topbar.html +54 -4
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/audit.py +1 -1
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/class_views.py +91 -14
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/context.py +2 -4
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/dashboard.py +6 -6
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/form.py +11 -1
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/list_context.py +2 -4
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/profile.py +2 -3
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/renderers.py +84 -9
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/roles.py +7 -14
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/sidebar.py +4 -6
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/totp.py +12 -8
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/users.py +4 -4
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/mkdocs.yml +1 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/pyproject.toml +12 -0
- fastapi_admin_kit-0.4.0/scripts/generate_changelog.py +275 -0
- fastapi_admin_kit-0.4.0/test_on_complete.py +2 -0
- fastapi_admin_kit-0.3.1/CHANGELOG.md +0 -51
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/admin/admin_database.py +0 -274
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/audit/models.py +0 -51
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/auth/models.py +0 -242
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/backends/__init__.py +0 -63
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/backends/sqlalchemy.py +0 -678
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/cli/migrate.py +0 -266
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/db.py +0 -161
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/schemas/builtin.py +0 -164
- fastapi_admin_kit-0.3.1/fastapi_admin_kit/templates/pages/detail.html +0 -183
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/.gitignore +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/LICENSE +0 -0
- /fastapi_admin_kit-0.3.1/fastapi_admin_kit/py.typed → /fastapi_admin_kit-0.4.0/example/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/actions/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/actions/base.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/actions/registry.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/admin_router.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/admin/decorators.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/deps.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/schema_generator.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/api/schemas.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/context.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/diff.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/event_bus.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/events.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/listener.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/logger.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/middleware.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/audit/sqlalchemy_logger.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/csrf.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/dependencies.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/hasher.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/password.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/protocol.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/ratelimit.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/router.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/session.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/totp.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/types.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/auth/views.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/__main__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/helpers.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/permissions.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/scaffold.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/cli/user.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/audit.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/auth.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/nav.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/storage.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/theme.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/config/ui.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/dashboard/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/exceptions.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/excel.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/export_import/registry.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/field_types.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/filters/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/filters/base.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/filters/registry.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/flash.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/form/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/form/types.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inline.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inspection/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inspection/registry.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inspection/types.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/inspection.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/models/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/models/base.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/nav.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/pagination/base.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/plugins/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/registry/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/registry/validation.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/registry.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/schemas/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/search_utils.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/css/presets.css +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/css/tokens.css +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/css/variables.css +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/icons/heroicons.svg +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/static/js/htmx-config.js +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/storage/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/storage/base.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/storage/local.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/macros/form_fields.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/macros/icons.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/macros/table.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/macros/widgets.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/2fa/setup.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/2fa/verify.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/403.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/audit_detail.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/audit_log.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/login.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/profile/password.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/profile/profile.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/role_form.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/roles/form.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/roles/list.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/roles.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/search.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/settings/theme.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/users/form.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/pages/users/list.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/_inline_edit_row.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/command_palette.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/field_wrapper.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/flash_messages.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/head.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/head_minimal.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/inline_edit_form.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/inline_stacked.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/inline_tabular.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/list_table.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/mobile_backdrop.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/pagination.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/perm_select_widget.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/permission_widget.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/templates/partials/scripts.html +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/types.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/ui/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/ui/types.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/validation.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/bulk.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/delete.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/extra.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/factory.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/file_handler.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/list.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/model_saver.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/protocols.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/search.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views/settings.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/views.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/__init__.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/base.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/inputs.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/registry.py +0 -0
- {fastapi_admin_kit-0.3.1 → fastapi_admin_kit-0.4.0}/fastapi_admin_kit/widgets/relation.py +0 -0
- {fastapi_admin_kit-0.3.1 → 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.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: fastapi-admin-kit
|
|
3
|
-
Version: 0.
|
|
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,13 @@ 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'
|
|
39
|
+
Provides-Extra: alembic
|
|
40
|
+
Requires-Dist: alembic>=1.13.0; extra == 'alembic'
|
|
34
41
|
Provides-Extra: dev
|
|
35
42
|
Requires-Dist: hatch>=1.13.0; extra == 'dev'
|
|
36
43
|
Requires-Dist: httpx>=0.27.0; extra == 'dev'
|
|
@@ -51,6 +58,8 @@ Requires-Dist: pyjwt>=2.13.0; extra == 'full'
|
|
|
51
58
|
Requires-Dist: uvicorn>=0.30.0; extra == 'full'
|
|
52
59
|
Provides-Extra: mysql
|
|
53
60
|
Requires-Dist: aiomysql>=0.2.0; extra == 'mysql'
|
|
61
|
+
Provides-Extra: notifications
|
|
62
|
+
Requires-Dist: twilio>=8.9.0; extra == 'notifications'
|
|
54
63
|
Provides-Extra: postgres
|
|
55
64
|
Requires-Dist: asyncpg>=0.29.0; extra == 'postgres'
|
|
56
65
|
Provides-Extra: sqlmodel
|
|
@@ -64,7 +73,7 @@ Description-Content-Type: text/markdown
|
|
|
64
73
|
[](https://github.com/borhanst/fastapi-admin-kit/blob/main/LICENSE)
|
|
65
74
|
[](https://github.com/borhanst/fastapi-admin-kit/actions/workflows/tests.yml)
|
|
66
75
|
|
|
67
|
-
A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django
|
|
76
|
+
A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django Admin.
|
|
68
77
|
|
|
69
78
|

|
|
70
79
|
|
|
@@ -82,7 +91,7 @@ A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Djan
|
|
|
82
91
|
- **17 Built-in Widgets** — TextInput, Toggle, DatePicker, FileUpload, Wysiwyg, and more
|
|
83
92
|
- **Inline Editing** — Edit records directly from list view with 3-dot action menu
|
|
84
93
|
- **Command Palette** — `Cmd+K` / `Ctrl+K` global search across models and fields
|
|
85
|
-
|
|
94
|
+
<!--- **JSON API** — REST endpoints with JWT token auth for external frontends-->
|
|
86
95
|
- **Dashboard** — Configurable stat cards, charts, tables, and progress bars
|
|
87
96
|
- **CLI Tools** — `fak-admin` / `fak` for superuser management and project scaffolding
|
|
88
97
|
- **Pagination** — Offset, cursor, or dynamic strategies per model
|
|
@@ -246,7 +255,6 @@ All commands accept `-d DATABASE_URL` or read the `DATABASE_URL` environment var
|
|
|
246
255
|
|
|
247
256
|
```python
|
|
248
257
|
from fastapi_admin_kit import Admin
|
|
249
|
-
from fastapi_admin_kit.config import ThemeConfig
|
|
250
258
|
|
|
251
259
|
admin = Admin(
|
|
252
260
|
app=app,
|
|
@@ -255,7 +263,6 @@ admin = Admin(
|
|
|
255
263
|
secret_key=SECRET_KEY,
|
|
256
264
|
title="My Admin", # Admin panel title
|
|
257
265
|
admin_path="/admin", # URL prefix
|
|
258
|
-
dark_mode_default=False, # Dark mode on by default
|
|
259
266
|
# Auth
|
|
260
267
|
auth_backend=BuiltinAuthBackend(),
|
|
261
268
|
# Environment badge
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/borhanst/fastapi-admin-kit/blob/main/LICENSE)
|
|
6
6
|
[](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
|
|
8
|
+
A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django Admin.
|
|
9
9
|
|
|
10
10
|

|
|
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
|
-
|
|
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
|
+
✓ 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">📦 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 %}
|