.gitignore
MANIFEST.in
README.md
manage.py
package-lock.json
package.json
pyproject.toml
tox.ini
vitest.config.js
.github/workflows/ci.yml
.github/workflows/docs.yml
.github/workflows/install-test.yml
.github/workflows/release.yml
djcrud-client/README.md
djcrud-client/pyproject.toml
djcrud-client/src/djcrud_client/__init__.py
djcrud-client/src/djcrud_client/__main__.py
djcrud-client/src/djcrud_client/api.py
djcrud-client/src/djcrud_client/config.py
djcrud-client/src/djcrud_client/profile.py
djcrud-client/src/djcrud_client/schema.py
djcrud-client/src/djcrud_client/server.py
djcrud-client/src/djcrud_client/tools.py
djcrud-client/tests/test_config.py
djcrud-client/tests/test_resolve_registry.py
djcrud-client/tests/test_standalone.py
djcrud-mcp/README.md
djcrud-mcp/pyproject.toml
djcrud-mcp/src/djcrud_client/__init__.py
djcrud-mcp/src/djcrud_client/__main__.py
djcrud-mcp/src/djcrud_client/api.py
djcrud-mcp/src/djcrud_client/config.py
djcrud-mcp/src/djcrud_client/profile.py
djcrud-mcp/src/djcrud_client/schema.py
djcrud-mcp/src/djcrud_client/server.py
djcrud-mcp/src/djcrud_client/tools.py
djcrud-mcp/src/djcrud_mcp.egg-info/PKG-INFO
djcrud-mcp/src/djcrud_mcp.egg-info/SOURCES.txt
djcrud-mcp/src/djcrud_mcp.egg-info/dependency_links.txt
djcrud-mcp/src/djcrud_mcp.egg-info/entry_points.txt
djcrud-mcp/src/djcrud_mcp.egg-info/requires.txt
djcrud-mcp/src/djcrud_mcp.egg-info/scm_version.json
djcrud-mcp/src/djcrud_mcp.egg-info/top_level.txt
djcrud-mcp/src/djcrud_mcp_shim/__init__.py
docs/Makefile
docs/build.sh
docs/conf.py
docs/contributing.rst
docs/demo.rst
docs/index.rst
docs/install.rst
docs/migrating-from-djmvc.rst
docs/philosophy.rst
docs/requirements.txt
docs/_static/.gitkeep
docs/_static/screenshots/api-swagger-ui.png
docs/_static/screenshots/article-detail.png
docs/_static/screenshots/article-list.png
docs/_static/screenshots/bulk-delete-modal.png
docs/_static/screenshots/duplicate-action-menu.png
docs/_static/screenshots/duplicate-action-success.png
docs/_static/screenshots/item-list.png
docs/_static/screenshots/list-action-bar.png
docs/_static/screenshots/publish-action-menu.png
docs/_static/screenshots/publish-action-success.png
docs/_static/screenshots/set-category-modal.png
docs/_static/screenshots/site-search.png
docs/_static/screenshots/success-toast.png
docs/design/djcrud_mcp.rst
docs/reference/clonable.rst
docs/reference/index.rst
docs/reference/model.rst
docs/reference/registry.rst
docs/reference/route.rst
docs/reference/router.rst
docs/reference/site.rst
docs/reference/tags.rst
docs/reference/templatetags.rst
docs/reference/view.rst
docs/reference/djcrud_api/index.rst
docs/reference/djcrud_auth/index.rst
docs/reference/djcrud_client/index.rst
docs/reference/djcrud_dal/index.rst
docs/reference/djcrud_dal_topbar/index.rst
docs/reference/djcrud_debug/index.rst
docs/reference/djcrud_drf/index.rst
docs/reference/djcrud_history/index.rst
docs/reference/djcrud_mcp/index.rst
docs/reference/mixins/action.rst
docs/reference/mixins/delete.rst
docs/reference/mixins/filter.rst
docs/reference/mixins/form.rst
docs/reference/mixins/index.rst
docs/reference/mixins/list.rst
docs/reference/mixins/list_action.rst
docs/reference/mixins/log.rst
docs/reference/mixins/modelform.rst
docs/reference/mixins/object.rst
docs/reference/mixins/object_modelform.rst
docs/reference/mixins/objectform.rst
docs/reference/mixins/pagination.rst
docs/reference/mixins/tables2.rst
docs/reference/mixins/template.rst
docs/reference/mixins/template_view.rst
docs/reference/views/create.rst
docs/reference/views/delete.rst
docs/reference/views/detail.rst
docs/reference/views/form.rst
docs/reference/views/index.rst
docs/reference/views/list.rst
docs/reference/views/list_action.rst
docs/reference/views/objectform.rst
docs/reference/views/spa.rst
docs/reference/views/template.rst
docs/reference/views/update.rst
docs/tutorial/agents.rst
docs/tutorial/drf.rst
docs/tutorial/index.rst
docs/tutorial/permission.rst
docs/tutorial/routing.rst
docs/tutorial/spa.rst
docs/tutorial/views.rst
src/.gitignore
src/djcrud/__init__.py
src/djcrud/admin.py
src/djcrud/apps.py
src/djcrud/clonable.py
src/djcrud/errors.py
src/djcrud/handlers.py
src/djcrud/introspection.py
src/djcrud/media.py
src/djcrud/model.py
src/djcrud/models.py
src/djcrud/permission.py
src/djcrud/permissions.py
src/djcrud/redirect.py
src/djcrud/registry.py
src/djcrud/route.py
src/djcrud/router.py
src/djcrud/search.py
src/djcrud/settings.py
src/djcrud/static.py
src/djcrud/tags.py
src/djcrud/tests.py
src/djcrud/view.py
src/djcrud.egg-info/PKG-INFO
src/djcrud.egg-info/SOURCES.txt
src/djcrud.egg-info/dependency_links.txt
src/djcrud.egg-info/requires.txt
src/djcrud.egg-info/scm_file_list.json
src/djcrud.egg-info/scm_version.json
src/djcrud.egg-info/top_level.txt
src/djcrud/locale/en/LC_MESSAGES/django.mo
src/djcrud/locale/en/LC_MESSAGES/django.po
src/djcrud/locale/fr/LC_MESSAGES/django.mo
src/djcrud/locale/fr/LC_MESSAGES/django.po
src/djcrud/management/commands/show_urls.py
src/djcrud/migrations/__init__.py
src/djcrud/templatetags/__init__.py
src/djcrud/templatetags/djcrud.py
src/djcrud/views/__init__.py
src/djcrud/views/action.py
src/djcrud/views/create.py
src/djcrud/views/delete.py
src/djcrud/views/detail.py
src/djcrud/views/filter.py
src/djcrud/views/form.py
src/djcrud/views/generic.py
src/djcrud/views/list.py
src/djcrud/views/list_action.py
src/djcrud/views/log.py
src/djcrud/views/modelform.py
src/djcrud/views/object.py
src/djcrud/views/objectform.py
src/djcrud/views/pagination.py
src/djcrud/views/search.py
src/djcrud/views/spa.py
src/djcrud/views/tables2.py
src/djcrud/views/template.py
src/djcrud/views/update.py
src/djcrud_api/__init__.py
src/djcrud_api/apps.py
src/djcrud_api/djcrud.py
src/djcrud_api/drf_views.py
src/djcrud_api/login.py
src/djcrud_api/middleware.py
src/djcrud_api/models.py
src/djcrud_api/views.py
src/djcrud_api/migrations/0001_initial.py
src/djcrud_api/migrations/0002_rename_from_djmvc_swagger.py
src/djcrud_api/migrations/0003_rename_from_djmvc_api.py
src/djcrud_api/migrations/__init__.py
src/djcrud_api/static/djcrud_api/swagger-ui-bundle.js
src/djcrud_api/static/djcrud_api/swagger-ui-standalone-preset.js
src/djcrud_api/static/djcrud_api/swagger-ui.css
src/djcrud_api/templates/djcrud_api/api.html
src/djcrud_auth/__init__.py
src/djcrud_auth/admin.py
src/djcrud_auth/apps.py
src/djcrud_auth/djcrud.py
src/djcrud_auth/models.py
src/djcrud_auth/tests.py
src/djcrud_auth/views.py
src/djcrud_auth/locale/en/LC_MESSAGES/django.mo
src/djcrud_auth/locale/en/LC_MESSAGES/django.po
src/djcrud_auth/locale/fr/LC_MESSAGES/django.mo
src/djcrud_auth/locale/fr/LC_MESSAGES/django.po
src/djcrud_auth/migrations/__init__.py
src/djcrud_bulma/__init__.py
src/djcrud_bulma/admin.py
src/djcrud_bulma/apps.py
src/djcrud_bulma/models.py
src/djcrud_bulma/tables.py
src/djcrud_bulma/tests.py
src/djcrud_bulma/views.py
src/djcrud_bulma/locale/en/LC_MESSAGES/django.mo
src/djcrud_bulma/locale/en/LC_MESSAGES/django.po
src/djcrud_bulma/locale/fr/LC_MESSAGES/django.mo
src/djcrud_bulma/locale/fr/LC_MESSAGES/django.po
src/djcrud_bulma/migrations/__init__.py
src/djcrud_bulma/static/djcrud_bulma/css/djcrud.css
src/djcrud_bulma/static/djcrud_bulma/css/style.css
src/djcrud_bulma/static/djcrud_bulma/js/dropdown.js
src/djcrud_bulma/static/djcrud_bulma/js/dropdown.test.js
src/djcrud_bulma/static/djcrud_bulma/js/filter-sidebar.js
src/djcrud_bulma/static/djcrud_bulma/js/filter-sidebar.test.js
src/djcrud_bulma/static/djcrud_bulma/js/form-focus.js
src/djcrud_bulma/static/djcrud_bulma/js/form-focus.test.js
src/djcrud_bulma/static/djcrud_bulma/js/hamburger.js
src/djcrud_bulma/static/djcrud_bulma/js/hamburger.test.js
src/djcrud_bulma/static/djcrud_bulma/js/list-action-bar.js
src/djcrud_bulma/static/djcrud_bulma/js/list-action-bar.test.js
src/djcrud_bulma/static/djcrud_bulma/js/nav-config.js
src/djcrud_bulma/static/djcrud_bulma/js/nav-config.test.js
src/djcrud_bulma/static/djcrud_bulma/js/per-page-selector.js
src/djcrud_bulma/static/djcrud_bulma/js/toast.js
src/djcrud_bulma/static/djcrud_bulma/js/toast.test.js
src/djcrud_bulma/static/djcrud_bulma/js/unpoly-config.js
src/djcrud_bulma/templates/django_tables2/bulma.html
src/djcrud_bulma/templates/djcrud/400.html
src/djcrud_bulma/templates/djcrud/403.html
src/djcrud_bulma/templates/djcrud/404.html
src/djcrud_bulma/templates/djcrud/500.html
src/djcrud_bulma/templates/djcrud/_actions_column.html
src/djcrud_bulma/templates/djcrud/_checkbox_column.html
src/djcrud_bulma/templates/djcrud/_checkbox_header.html
src/djcrud_bulma/templates/djcrud/_deletion_preview.html
src/djcrud_bulma/templates/djcrud/_error.html
src/djcrud_bulma/templates/djcrud/_filter.html
src/djcrud_bulma/templates/djcrud/_flashes.html
src/djcrud_bulma/templates/djcrud/_navbar_burger.html
src/djcrud_bulma/templates/djcrud/_navigation_menu.html
src/djcrud_bulma/templates/djcrud/_object_list.html
src/djcrud_bulma/templates/djcrud/_pagination.html
src/djcrud_bulma/templates/djcrud/_tables2.html
src/djcrud_bulma/templates/djcrud/base.html
src/djcrud_bulma/templates/djcrud/base_spa.html
src/djcrud_bulma/templates/djcrud/confirm.html
src/djcrud_bulma/templates/djcrud/delete.html
src/djcrud_bulma/templates/djcrud/detail.html
src/djcrud_bulma/templates/djcrud/detaillist.html
src/djcrud_bulma/templates/djcrud/error.html
src/djcrud_bulma/templates/djcrud/form.html
src/djcrud_bulma/templates/djcrud/form_delete.html
src/djcrud_bulma/templates/djcrud/home.html
src/djcrud_bulma/templates/djcrud/list.html
src/djcrud_bulma/templates/djcrud/modelform.html
src/djcrud_bulma/templates/djcrud/test_spa.html
src/djcrud_bulma/templatetags/__init__.py
src/djcrud_dal/__init__.py
src/djcrud_dal/apps.py
src/djcrud_dal/hooks.py
src/djcrud_dal/lookup.py
src/djcrud_dal/models.py
src/djcrud_dal/views.py
src/djcrud_dal_topbar/__init__.py
src/djcrud_dal_topbar/apps.py
src/djcrud_dal_topbar/djcrud.py
src/djcrud_dal_topbar/lookup.py
src/djcrud_dal_topbar/views.py
src/djcrud_dal_topbar/static/djcrud_dal_topbar/css/site-search.css
src/djcrud_dal_topbar/static/djcrud_dal_topbar/js/site-search.js
src/djcrud_dal_topbar/templates/djcrud/_search_form.html
src/djcrud_dal_topbar/templates/djcrud/_site_search.html
src/djcrud_dal_topbar/templates/djcrud/search.html
src/djcrud_debug/__init__.py
src/djcrud_debug/apps.py
src/djcrud_debug/djcrud.py
src/djcrud_debug/models.py
src/djcrud_debug/routing_debug.py
src/djcrud_debug/views.py
src/djcrud_drf/__init__.py
src/djcrud_drf/apps.py
src/djcrud_drf/log.py
src/djcrud_drf/serializers.py
src/djcrud_drf/spectacular.py
src/djcrud_drf/viewsets.py
src/djcrud_example/__init__.py
src/djcrud_example/asgi.py
src/djcrud_example/example_urls.py
src/djcrud_example/models.py
src/djcrud_example/settings.py
src/djcrud_example/urls.py
src/djcrud_example/wsgi.py
src/djcrud_example/action_example/__init__.py
src/djcrud_example/action_example/apps.py
src/djcrud_example/action_example/djcrud.py
src/djcrud_example/action_example/models.py
src/djcrud_example/action_example/migrations/0001_initial.py
src/djcrud_example/action_example/migrations/0002_memo_delete_story.py
src/djcrud_example/action_example/migrations/__init__.py
src/djcrud_example/drf_example/__init__.py
src/djcrud_example/drf_example/apps.py
src/djcrud_example/drf_example/djcrud.py
src/djcrud_example/drf_example/models.py
src/djcrud_example/drf_example/migrations/0001_initial.py
src/djcrud_example/drf_example/migrations/__init__.py
src/djcrud_example/listaction_example/__init__.py
src/djcrud_example/listaction_example/apps.py
src/djcrud_example/listaction_example/djcrud.py
src/djcrud_example/listaction_example/models.py
src/djcrud_example/listaction_example/migrations/0001_initial.py
src/djcrud_example/listaction_example/migrations/__init__.py
src/djcrud_example/mcp_example/__init__.py
src/djcrud_example/mcp_example/apps.py
src/djcrud_example/mcp_example/djcrud.py
src/djcrud_example/migrations/0001_initial.py
src/djcrud_example/migrations/0002_test_users.py
src/djcrud_example/migrations/__init__.py
src/djcrud_example/routing_example/__init__.py
src/djcrud_example/routing_example/admin.py
src/djcrud_example/routing_example/apps.py
src/djcrud_example/routing_example/djcrud.py
src/djcrud_example/routing_example/models.py
src/djcrud_example/routing_example/tests.py
src/djcrud_example/routing_example/migrations/0001_initial.py
src/djcrud_example/routing_example/migrations/__init__.py
src/djcrud_example/search_example/__init__.py
src/djcrud_example/search_example/apps.py
src/djcrud_example/search_example/djcrud.py
src/djcrud_example/search_example/models.py
src/djcrud_example/search_example/migrations/0001_initial.py
src/djcrud_example/search_example/migrations/__init__.py
src/djcrud_example/security_example/__init__.py
src/djcrud_example/security_example/apps.py
src/djcrud_example/security_example/djcrud.py
src/djcrud_example/security_example/models.py
src/djcrud_example/security_example/migrations/0001_initial.py
src/djcrud_example/security_example/migrations/0002_story.py
src/djcrud_example/security_example/migrations/0003_document_published_delete_story.py
src/djcrud_example/security_example/migrations/__init__.py
src/djcrud_example/spa_example/__init__.py
src/djcrud_example/spa_example/admin.py
src/djcrud_example/spa_example/apps.py
src/djcrud_example/spa_example/djcrud.py
src/djcrud_example/spa_example/models.py
src/djcrud_example/spa_example/tests.py
src/djcrud_example/spa_example/frontend/README.md
src/djcrud_example/spa_example/frontend/package-lock.json
src/djcrud_example/spa_example/frontend/package.json
src/djcrud_example/spa_example/frontend/vite.config.js
src/djcrud_example/spa_example/frontend/src/App.svelte
src/djcrud_example/spa_example/frontend/src/main.js
src/djcrud_example/spa_example/migrations/__init__.py
src/djcrud_example/spa_example/static/spa_example/js/app.BDdKb6Vl.js
src/djcrud_example/spa_example/static/spa_example/js/.vite/manifest.json
src/djcrud_example/views_example/__init__.py
src/djcrud_example/views_example/apps.py
src/djcrud_example/views_example/djcrud.py
src/djcrud_example/views_example/models.py
src/djcrud_example/views_example/migrations/0001_initial.py
src/djcrud_example/views_example/migrations/0002_article_owner.py
src/djcrud_example/views_example/migrations/0003_remove_post.py
src/djcrud_example/views_example/migrations/__init__.py
src/djcrud_history/__init__.py
src/djcrud_history/apps.py
src/djcrud_history/djcrud.py
src/djcrud_history/log.py
src/djcrud_history/models.py
src/djcrud_history/views.py
src/djcrud_mcp/__init__.py
src/djcrud_mcp/api_viewsets.py
src/djcrud_mcp/apps.py
src/djcrud_mcp/djcrud.py
src/djcrud_mcp/profiles.py
src/djcrud_mcp/site.py
src/djcrud_mcp/viewsets.py
src/djcrud_triggers/__init__.py
src/djcrud_triggers/apps.py
src/djcrud_triggers/hooks/__init__.py
src/djcrud_triggers/hooks/events.py
src/djcrud_triggers/hooks/registry.py
src/djcrud_triggers/hooks/runner.py
tests/README.md
tests/__init__.py
tests/alight_helpers.py
tests/conftest.py
tests/dal_screenshots.py
tests/doc_screenshots.py
tests/test_action_example.py
tests/test_auth.py
tests/test_breadcrumbs.py
tests/test_detail_list.py
tests/test_djcrud_dal.py
tests/test_djcrud_dal_splinter.py
tests/test_djcrud_dal_topbar.py
tests/test_djcrud_dal_topbar_splinter.py
tests/test_djcrud_mcp.py
tests/test_djcrud_tags.py
tests/test_djcrud_triggers.py
tests/test_docs_screenshots.py
tests/test_drf.py
tests/test_errors.py
tests/test_eval.py
tests/test_filter.py
tests/test_form_focus.py
tests/test_hamburger.py
tests/test_i18n.py
tests/test_list_action.py
tests/test_list_combinations.py
tests/test_listaction_example.py
tests/test_logentry.py
tests/test_messages.py
tests/test_messages_browser.py
tests/test_nav_active.py
tests/test_pagination.py
tests/test_permissions.py
tests/test_permissions_registry.py
tests/test_queryset.py
tests/test_registry.py
tests/test_router.py
tests/test_routing.py
tests/test_routing_debug.py
tests/test_routing_example.py
tests/test_search_example.py
tests/test_security_example.py
tests/test_spa.py
tests/test_spa_browser.py
tests/test_spa_example.py
tests/test_tags.py
tests/test_tokens.py
tests/test_tutorial_docs.py
tests/test_view.py
tests/test_views_example.py
tests/topbar_screenshots.py
tests/urls.py
tests/urls_drf.py
tests/views/test_template.py