django-cfg 1.2.22__tar.gz → 1.2.23__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.
- {django_cfg-1.2.22 → django_cfg-1.2.23}/.gitignore +1 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/PKG-INFO +2 -1
- {django_cfg-1.2.22 → django_cfg-1.2.23}/README.md +1 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/pyproject.toml +1 -1
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/__init__.py +1 -1
- django_cfg-1.2.23/src/django_cfg/apps/payments/admin/__init__.py +23 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/admin/api_keys_admin.py +347 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/admin/balance_admin.py +434 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/admin/currencies_admin.py +186 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/admin/filters.py +259 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/admin/payments_admin.py +142 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/admin/subscriptions_admin.py +227 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/admin/tariffs_admin.py +199 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/config/__init__.py +87 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/config/module.py +162 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/config/providers.py +93 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/config/settings.py +136 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/config/utils.py +198 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/decorators.py +291 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/middleware/api_access.py +261 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/middleware/rate_limiting.py +216 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/middleware/usage_tracking.py +296 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/migrations/0001_initial.py +32 -11
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/models/__init__.py +18 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/models/api_keys.py +2 -2
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/models/balance.py +2 -2
- django_cfg-1.2.23/src/django_cfg/apps/payments/models/base.py +30 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/models/events.py +2 -2
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/models/payments.py +2 -2
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/models/subscriptions.py +2 -2
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/__init__.py +65 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/billing/__init__.py +8 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/cache/__init__.py +15 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/cache/base.py +30 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/cache/simple_cache.py +135 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/core/__init__.py +17 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/core/balance_service.py +449 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/core/payment_service.py +393 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/core/subscription_service.py +616 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/internal_types.py +266 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/middleware/__init__.py +8 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/providers/__init__.py +19 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/providers/base.py +137 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/providers/cryptapi.py +262 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/providers/nowpayments.py +293 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/providers/registry.py +99 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/services/validators/__init__.py +8 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/signals/__init__.py +13 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/signals/api_key_signals.py +150 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/signals/payment_signals.py +127 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/signals/subscription_signals.py +196 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/urls.py +5 -5
- django_cfg-1.2.23/src/django_cfg/apps/payments/utils/__init__.py +42 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/utils/config_utils.py +243 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/utils/middleware_utils.py +228 -0
- django_cfg-1.2.23/src/django_cfg/apps/payments/utils/validation_utils.py +94 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/signals.py +16 -4
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/templates/support/chat/ticket_chat.html +1 -1
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/revolution.py +1 -1
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/base.py +1 -1
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_email.py +42 -4
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/dashboard.py +20 -0
- django_cfg-1.2.22/src/django_cfg/apps/payments/models/base.py +0 -14
- django_cfg-1.2.22/src/django_cfg/apps/payments/services/__init__.py +0 -14
- django_cfg-1.2.22/src/django_cfg/apps/payments/services/base.py +0 -68
- django_cfg-1.2.22/src/django_cfg/apps/payments/services/nowpayments.py +0 -78
- django_cfg-1.2.22/src/django_cfg/apps/payments/services/providers.py +0 -77
- django_cfg-1.2.22/src/django_cfg/apps/payments/services/redis_service.py +0 -215
- {django_cfg-1.2.22 → django_cfg-1.2.23}/LICENSE +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/MANIFEST.in +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/requirements-dev.txt +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/requirements-test.txt +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/requirements.txt +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/__models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/activity.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/filters.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/group.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/inlines.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/otp.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/registration_source.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/resources.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/twilio_response.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/admin/user.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/management/commands/test_otp.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/managers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/managers/user_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/migrations/0001_initial.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/migrations/0002_add_phone_otp_clean.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/migrations/0003_twilioresponse.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/migrations/0004_delete_twilioresponse.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/migrations/0005_twilioresponse.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/migrations/0006_remove_twilioresponse_otp_secret_and_more.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/migrations/0007_twilioresponse.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/migrations/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/models/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/models/activity.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/models/auth.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/models/base.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/models/choices.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/models/integrations.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/models/registration.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/models/user.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/serializers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/serializers/otp.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/serializers/profile.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/serializers/webhook.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/services/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/services/activity_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/services/otp_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/signals.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/templates/emails/base_email.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/templates/emails/base_email.txt +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/templates/emails/otp_email.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/templates/emails/otp_email.txt +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/templates/emails/welcome_email.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/templates/emails/welcome_email.txt +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/utils/auth_email_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/utils/notifications.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/views/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/views/otp.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/views/profile.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/accounts/views/webhook.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/admin/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/admin/execution_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/admin/registry_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/admin/toolsets_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/core/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/core/agent.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/core/dependencies.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/core/exceptions.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/core/models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/core/orchestrator.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/examples/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/examples/simple_example.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/integration/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/integration/middleware.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/integration/registry.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/integration/signals.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/management/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/management/commands/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/management/commands/create_agent.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/management/commands/orchestrator_status.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/managers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/managers/execution.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/managers/registry.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/managers/toolsets.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/migrations/0001_initial.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/migrations/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/models/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/models/execution.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/models/registry.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/models/toolsets.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/patterns/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/patterns/content_agents.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/toolsets/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/toolsets/cache_toolset.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/toolsets/django_toolset.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/toolsets/file_toolset.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/toolsets/orm_toolset.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/agents/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/api/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/api/commands/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/api/commands/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/api/commands/views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/api/health/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/api/health/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/api/health/views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/admin/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/admin/archive_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/admin/chat_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/admin/document_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/admin/external_data_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/config/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/config/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/config/constance_fields.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/config/constance_settings.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/config/settings.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/examples/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/examples/external_data_usage.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/management/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/management/commands/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/management/commands/knowbase_stats.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/management/commands/setup_knowbase.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/managers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/managers/archive.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/managers/base.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/managers/chat.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/managers/document.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/managers/external_data.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/migrations/0001_initial.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/migrations/0002_archiveitem_archiveitemchunk_documentarchive_and_more.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/migrations/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/mixins/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/mixins/config.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/mixins/creator.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/mixins/external_data_mixin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/mixins/service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/models/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/models/archive.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/models/base.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/models/chat.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/models/document.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/models/external_data.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/serializers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/serializers/archive_serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/serializers/chat_serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/serializers/document_serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/serializers/external_data_serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/serializers/public_serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/archive/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/archive/archive_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/archive/chunking_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/archive/exceptions.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/archive/extraction_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/archive/vectorization_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/base.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/chat_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/document_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/embedding/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/embedding/async_processor.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/embedding/batch_processor.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/embedding/batch_result.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/embedding/models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/embedding/processors.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/embedding/utils.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/prompt_builder.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/services/search_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/signals/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/signals/archive_signals.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/signals/chat_signals.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/signals/document_signals.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/signals/external_data_signals.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/tasks/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/tasks/archive_tasks.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/tasks/document_processing.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/tasks/external_data_tasks.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/tasks/maintenance.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/utils/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/utils/chunk_settings.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/utils/text_processing.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/utils/validation.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/views/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/views/archive_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/views/base.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/views/chat_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/views/document_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/knowbase/views/public_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/admin/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/admin/leads_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/admin/resources.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/migrations/0001_initial.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/migrations/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/signals.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/tests.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/leads/views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/admin/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/admin/api_key_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/admin/log_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/admin/scheduled_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/admin/site_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/management/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/management/commands/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/management/commands/maintenance.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/management/commands/process_scheduled_maintenance.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/management/commands/sync_cloudflare.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/managers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/managers/cloudflare_site_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/managers/maintenance_log_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/migrations/0001_initial.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/migrations/0002_cloudflaresite_maintenance_url.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/migrations/0003_cloudflaresite_include_subdomains_and_more.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/migrations/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/models/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/models/cloudflare_api_key.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/models/cloudflare_site.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/models/maintenance_log.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/models/scheduled_maintenance.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/services/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/services/bulk_operations_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/services/maintenance_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/services/scheduled_maintenance_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/services/site_sync_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/utils/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/maintenance/utils/retry_utils.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/admin/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/admin/filters.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/admin/newsletter_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/admin/resources.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/admin_filters.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/management/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/management/commands/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/management/commands/test_newsletter.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/managers/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/managers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/migrations/0001_initial.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/migrations/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/services/email_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/signals.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/utils/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/views/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/views/campaigns.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/views/emails.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/views/newsletters.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/views/subscriptions.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/newsletter/views/tracking.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/managers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/managers/api_key_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/managers/balance_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/managers/currency_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/managers/payment_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/managers/subscription_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/managers/tariff_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/middleware/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/migrations/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/models/currencies.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/models/tariffs.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/serializers/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/serializers/api_keys.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/serializers/balance.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/serializers/currencies.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/serializers/payments.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/serializers/subscriptions.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/serializers/tariffs.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/views/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/views/api_key_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/views/balance_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/views/currency_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/views/payment_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/views/subscription_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/payments/views/tariff_views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/admin/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/admin/filters.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/admin/resources.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/admin/support_admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/admin_filters.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/managers/message_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/managers/ticket_manager.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/migrations/0001_initial.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/migrations/0002_alter_message_ticket.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/migrations/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/templates/support/chat/access_denied.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/utils/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/utils/support_email_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/views/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/views/admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/views/api.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/support/views/chat.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/admin.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/serializers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/static/tasks/css/dashboard.css +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/static/tasks/js/api.js +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/static/tasks/js/dashboard.js +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/static/tasks/js/modals.js +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/static/tasks/js/notifications.js +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/static/tasks/js/task-monitor.js +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/static/tasks/js/theme.js +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/base.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/info_cards.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/management_actions.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/overview_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/queues_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/status_cards.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/tasks_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/components/workers_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/templates/tasks/dashboard.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/tasks/views.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/apps.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/cli/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/cli/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/cli/commands/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/cli/commands/create_project.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/cli/commands/info.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/cli/main.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/cli/utils.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/config.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/core/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/core/config.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/core/environment.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/core/exceptions.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/core/generation.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/core/integration.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/core/validation.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/auto_generate.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/check_settings.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/clear_constance.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/create_token.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/generate.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/list_urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/migrate_all.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/migrator.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/rundramatiq.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/runserver_ngrok.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/script.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/show_config.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/show_urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/superuser.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/task_clear.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/task_status.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/test_email.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/test_telegram.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/test_twilio.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/tree.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/management/commands/validate_config.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/middleware/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/middleware/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/middleware/pagination.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/middleware/public_endpoints.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/middleware/user_activity.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/api.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/base.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/cache.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/cfg.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/constance.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/cors.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/database.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/drf.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/email.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/environment.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/jwt.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/limits.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/logging.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/ngrok.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/security.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/services.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/models/tasks.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_currency/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_currency/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_currency/cache.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_currency/converter.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_currency/service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_health.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_import_export/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_import_export/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/example.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/llm/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/llm/cache.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/llm/client.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/llm/costs.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/llm/extractor.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/llm/models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/llm/models_cache.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/llm/tokenizer.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/translator/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/translator/cache.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_llm/translator/translator.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_logger.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_ngrok.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_tasks.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_telegram.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/exceptions.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/sendgrid_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/simple_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/templates/guide.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/templates/sendgrid_test_data.json +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_twilio/twilio_service.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/actions.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/base.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/charts.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/commands.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/main.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/revolution.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/statistics.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/system.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/callbacks/users.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/icons/README.md +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/icons/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/icons/constants.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/icons/generate_icons.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/models/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/models/config.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/models/dashboard.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/models/dropdown.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/models/navigation.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/models/tabs.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/models.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/system_monitor.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/tailwind.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/django_unfold/utils.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/dramatiq_setup.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/modules/logger.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/registry/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/registry/core.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/registry/exceptions.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/registry/modules.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/registry/services.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/registry/third_party.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/routing/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/routing/callbacks.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/routing/routers.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/action_grid.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/card.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/data_table.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/metric_card.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/modal.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/progress_bar.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/section_header.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/stat_item.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/stats_grid.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/status_badge.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/components/user_avatar.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/constance/change_list.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/constance/includes/default_value.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/constance/includes/fieldset_header.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/constance/includes/results_list.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/constance/includes/setting_row.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/constance/includes/table_headers.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/import_export/change_list_export.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/import_export/change_list_import.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/import_export/change_list_import_export.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/index.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/layouts/dashboard_with_tabs.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/activity_tracker.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/charts_section.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/django_commands.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/quick_actions.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/recent_activity.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/recent_users_table.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/stats_cards.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/stats_tiles.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/system_health.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/system_metrics.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/components/user_permissions.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/tabs/app_stats_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/tabs/commands_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/tabs/overview_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/tabs/stats_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/tabs/users_tab.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/admin/snippets/zones/zones_table.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/emails/base_email.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templates/rest_framework/api.html +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templatetags/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/templatetags/django_cfg.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/urls.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/utils/__init__.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/utils/path_resolution.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/utils/smart_defaults.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/utils/toolkit.py +0 -0
- {django_cfg-1.2.22 → django_cfg-1.2.23}/src/django_cfg/utils/version_check.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: django-cfg
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.23
|
4
4
|
Summary: 🚀 Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices — all in one.
|
5
5
|
Project-URL: Homepage, https://djangocfg.com
|
6
6
|
Project-URL: Documentation, https://docs.djangocfg.com
|
@@ -146,6 +146,7 @@ Description-Content-Type: text/markdown
|
|
146
146
|
|
147
147
|
# 🚀 Django-CFG: Enterprise Django Configuration Framework
|
148
148
|
|
149
|
+
|
149
150
|
[](https://pypi.org/project/django-cfg/)
|
150
151
|
[](https://pypi.org/project/django-cfg/)
|
151
152
|
[](https://pypi.org/project/django-cfg/)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# 🚀 Django-CFG: Enterprise Django Configuration Framework
|
2
2
|
|
3
|
+
|
3
4
|
[](https://pypi.org/project/django-cfg/)
|
4
5
|
[](https://pypi.org/project/django-cfg/)
|
5
6
|
[](https://pypi.org/project/django-cfg/)
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "django-cfg"
|
7
|
-
version = "1.2.
|
7
|
+
version = "1.2.23"
|
8
8
|
description = "🚀 Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices — all in one."
|
9
9
|
readme = "README.md"
|
10
10
|
license = {text = "MIT"}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"""
|
2
|
+
Admin interfaces for universal payments.
|
3
|
+
"""
|
4
|
+
|
5
|
+
from .balance_admin import UserBalanceAdmin, TransactionAdmin
|
6
|
+
from .payments_admin import UniversalPaymentAdmin
|
7
|
+
from .subscriptions_admin import SubscriptionAdmin, EndpointGroupAdmin
|
8
|
+
from .api_keys_admin import APIKeyAdmin
|
9
|
+
from .currencies_admin import CurrencyAdmin, CurrencyNetworkAdmin
|
10
|
+
from .tariffs_admin import TariffAdmin, TariffEndpointGroupAdmin
|
11
|
+
|
12
|
+
__all__ = [
|
13
|
+
'UserBalanceAdmin',
|
14
|
+
'TransactionAdmin',
|
15
|
+
'UniversalPaymentAdmin',
|
16
|
+
'SubscriptionAdmin',
|
17
|
+
'EndpointGroupAdmin',
|
18
|
+
'APIKeyAdmin',
|
19
|
+
'CurrencyAdmin',
|
20
|
+
'CurrencyNetworkAdmin',
|
21
|
+
'TariffAdmin',
|
22
|
+
'TariffEndpointGroupAdmin',
|
23
|
+
]
|
@@ -0,0 +1,347 @@
|
|
1
|
+
"""
|
2
|
+
Admin interface for API key management.
|
3
|
+
"""
|
4
|
+
|
5
|
+
from django.contrib import admin
|
6
|
+
from django.utils.html import format_html
|
7
|
+
from django.contrib.humanize.templatetags.humanize import naturaltime
|
8
|
+
from django.urls import reverse
|
9
|
+
from django.shortcuts import redirect
|
10
|
+
from unfold.admin import ModelAdmin
|
11
|
+
from unfold.decorators import display, action
|
12
|
+
from unfold.enums import ActionVariant
|
13
|
+
|
14
|
+
from ..models import APIKey
|
15
|
+
from .filters import APIKeyStatusFilter, UserEmailFilter, RecentActivityFilter
|
16
|
+
|
17
|
+
|
18
|
+
@admin.register(APIKey)
|
19
|
+
class APIKeyAdmin(ModelAdmin):
|
20
|
+
"""Admin interface for API keys."""
|
21
|
+
|
22
|
+
list_display = [
|
23
|
+
'key_display',
|
24
|
+
'user_display',
|
25
|
+
'name',
|
26
|
+
'status_display',
|
27
|
+
'usage_display',
|
28
|
+
'last_used_display',
|
29
|
+
'expires_display',
|
30
|
+
'created_at_display'
|
31
|
+
]
|
32
|
+
|
33
|
+
list_display_links = ['key_display', 'name']
|
34
|
+
|
35
|
+
search_fields = [
|
36
|
+
'name',
|
37
|
+
'user__email',
|
38
|
+
'user__first_name',
|
39
|
+
'user__last_name',
|
40
|
+
'key_value',
|
41
|
+
'key_prefix'
|
42
|
+
]
|
43
|
+
|
44
|
+
list_filter = [
|
45
|
+
APIKeyStatusFilter,
|
46
|
+
UserEmailFilter,
|
47
|
+
RecentActivityFilter,
|
48
|
+
'is_active',
|
49
|
+
'created_at',
|
50
|
+
'last_used'
|
51
|
+
]
|
52
|
+
|
53
|
+
readonly_fields = [
|
54
|
+
'key_value',
|
55
|
+
'key_prefix',
|
56
|
+
'usage_count',
|
57
|
+
'last_used',
|
58
|
+
'created_at',
|
59
|
+
'key_statistics',
|
60
|
+
'usage_history'
|
61
|
+
]
|
62
|
+
|
63
|
+
fieldsets = [
|
64
|
+
('API Key Information', {
|
65
|
+
'fields': ['name', 'user']
|
66
|
+
}),
|
67
|
+
('Key Details', {
|
68
|
+
'fields': ['key_value', 'key_prefix'],
|
69
|
+
'classes': ['collapse']
|
70
|
+
}),
|
71
|
+
('Settings', {
|
72
|
+
'fields': ['is_active', 'expires_at']
|
73
|
+
}),
|
74
|
+
('Usage Statistics', {
|
75
|
+
'fields': ['usage_count', 'last_used', 'key_statistics'],
|
76
|
+
'classes': ['collapse']
|
77
|
+
}),
|
78
|
+
('Usage History', {
|
79
|
+
'fields': ['usage_history'],
|
80
|
+
'classes': ['collapse']
|
81
|
+
}),
|
82
|
+
('Timestamps', {
|
83
|
+
'fields': ['created_at'],
|
84
|
+
'classes': ['collapse']
|
85
|
+
})
|
86
|
+
]
|
87
|
+
|
88
|
+
actions = [
|
89
|
+
'activate_keys',
|
90
|
+
'deactivate_keys',
|
91
|
+
'reset_usage'
|
92
|
+
]
|
93
|
+
|
94
|
+
actions_detail = [
|
95
|
+
'regenerate_key',
|
96
|
+
'view_usage_stats',
|
97
|
+
'deactivate_key'
|
98
|
+
]
|
99
|
+
|
100
|
+
@display(description="API Key")
|
101
|
+
def key_display(self, obj):
|
102
|
+
"""Display API key with masking."""
|
103
|
+
if obj.key_value:
|
104
|
+
masked_key = f"{obj.key_prefix}***{obj.key_value[-4:]}"
|
105
|
+
else:
|
106
|
+
masked_key = f"{obj.key_prefix}***"
|
107
|
+
|
108
|
+
status_color = '#28a745' if obj.is_active else '#dc3545'
|
109
|
+
status_icon = '🔑' if obj.is_active else '🔒'
|
110
|
+
|
111
|
+
return format_html(
|
112
|
+
'<span style="color: {};">{}</span> <code>{}</code>',
|
113
|
+
status_color,
|
114
|
+
status_icon,
|
115
|
+
masked_key
|
116
|
+
)
|
117
|
+
|
118
|
+
@display(description="User")
|
119
|
+
def user_display(self, obj):
|
120
|
+
"""Display user information."""
|
121
|
+
user = obj.user
|
122
|
+
if hasattr(user, 'avatar') and user.avatar:
|
123
|
+
avatar_html = f'<img src="{user.avatar.url}" style="width: 20px; height: 20px; border-radius: 50%; margin-right: 6px;" />'
|
124
|
+
else:
|
125
|
+
initials = f"{user.first_name[:1]}{user.last_name[:1]}" if user.first_name and user.last_name else user.email[:2]
|
126
|
+
avatar_html = f'<div style="width: 20px; height: 20px; border-radius: 50%; background: #6c757d; color: white; display: inline-flex; align-items: center; justify-content: center; font-size: 9px; margin-right: 6px;">{initials.upper()}</div>'
|
127
|
+
|
128
|
+
return format_html(
|
129
|
+
'{}<strong>{}</strong><br><small>{}</small>',
|
130
|
+
avatar_html,
|
131
|
+
user.get_full_name() or user.email,
|
132
|
+
user.email
|
133
|
+
)
|
134
|
+
|
135
|
+
@display(description="Status")
|
136
|
+
def status_display(self, obj):
|
137
|
+
"""Display status with validation check."""
|
138
|
+
if not obj.is_active:
|
139
|
+
return format_html(
|
140
|
+
'<span style="background: #dc3545; color: white; padding: 2px 6px; border-radius: 3px; font-size: 11px;">Inactive</span>'
|
141
|
+
)
|
142
|
+
|
143
|
+
if obj.expires_at and obj.expires_at <= obj.__class__.objects.model._get_current_time():
|
144
|
+
return format_html(
|
145
|
+
'<span style="background: #ffc107; color: black; padding: 2px 6px; border-radius: 3px; font-size: 11px;">Expired</span>'
|
146
|
+
)
|
147
|
+
|
148
|
+
if obj.is_valid():
|
149
|
+
return format_html(
|
150
|
+
'<span style="background: #28a745; color: white; padding: 2px 6px; border-radius: 3px; font-size: 11px;">Active</span>'
|
151
|
+
)
|
152
|
+
else:
|
153
|
+
return format_html(
|
154
|
+
'<span style="background: #dc3545; color: white; padding: 2px 6px; border-radius: 3px; font-size: 11px;">Invalid</span>'
|
155
|
+
)
|
156
|
+
|
157
|
+
@display(description="Usage")
|
158
|
+
def usage_display(self, obj):
|
159
|
+
"""Display usage statistics."""
|
160
|
+
usage_count = obj.usage_count
|
161
|
+
|
162
|
+
if usage_count == 0:
|
163
|
+
color = '#6c757d'
|
164
|
+
text = 'Never used'
|
165
|
+
elif usage_count < 100:
|
166
|
+
color = '#28a745'
|
167
|
+
text = f'{usage_count} calls'
|
168
|
+
elif usage_count < 1000:
|
169
|
+
color = '#ffc107'
|
170
|
+
text = f'{usage_count} calls'
|
171
|
+
else:
|
172
|
+
color = '#dc3545'
|
173
|
+
text = f'{usage_count:,} calls'
|
174
|
+
|
175
|
+
return format_html(
|
176
|
+
'<span style="color: {}; font-weight: bold;">{}</span>',
|
177
|
+
color, text
|
178
|
+
)
|
179
|
+
|
180
|
+
@display(description="Last Used")
|
181
|
+
def last_used_display(self, obj):
|
182
|
+
"""Display last used time."""
|
183
|
+
if obj.last_used:
|
184
|
+
return naturaltime(obj.last_used)
|
185
|
+
return format_html(
|
186
|
+
'<span style="color: #6c757d;">Never</span>'
|
187
|
+
)
|
188
|
+
|
189
|
+
@display(description="Expires")
|
190
|
+
def expires_display(self, obj):
|
191
|
+
"""Display expiration time."""
|
192
|
+
if obj.expires_at:
|
193
|
+
from django.utils import timezone
|
194
|
+
if obj.expires_at <= timezone.now():
|
195
|
+
return format_html(
|
196
|
+
'<span style="color: #dc3545;">Expired</span>'
|
197
|
+
)
|
198
|
+
else:
|
199
|
+
return naturaltime(obj.expires_at)
|
200
|
+
return format_html(
|
201
|
+
'<span style="color: #6c757d;">Never</span>'
|
202
|
+
)
|
203
|
+
|
204
|
+
@display(description="Created")
|
205
|
+
def created_at_display(self, obj):
|
206
|
+
"""Display creation date."""
|
207
|
+
return naturaltime(obj.created_at)
|
208
|
+
|
209
|
+
def key_statistics(self, obj):
|
210
|
+
"""Show API key statistics."""
|
211
|
+
from django.utils import timezone
|
212
|
+
|
213
|
+
# Calculate usage trends
|
214
|
+
recent_usage = 0 # In real implementation, calculate from usage logs
|
215
|
+
|
216
|
+
return format_html(
|
217
|
+
'<div style="line-height: 1.6;">'
|
218
|
+
'<strong>API Key Statistics:</strong><br>'
|
219
|
+
'• Total Usage: <strong>{:,}</strong> calls<br>'
|
220
|
+
'• Status: {}<br>'
|
221
|
+
'• Valid: {}<br>'
|
222
|
+
'• Last Used: {}<br>'
|
223
|
+
'• Expires: {}<br>'
|
224
|
+
'• Created: {}<br>'
|
225
|
+
'</div>',
|
226
|
+
obj.usage_count,
|
227
|
+
'Active' if obj.is_active else 'Inactive',
|
228
|
+
'Yes' if obj.is_valid() else 'No',
|
229
|
+
naturaltime(obj.last_used) if obj.last_used else 'Never',
|
230
|
+
naturaltime(obj.expires_at) if obj.expires_at else 'Never',
|
231
|
+
naturaltime(obj.created_at)
|
232
|
+
)
|
233
|
+
|
234
|
+
key_statistics.short_description = "Key Statistics"
|
235
|
+
|
236
|
+
def usage_history(self, obj):
|
237
|
+
"""Show usage history (placeholder for future implementation)."""
|
238
|
+
return format_html(
|
239
|
+
'<div style="line-height: 1.6;">'
|
240
|
+
'<strong>Usage History:</strong><br>'
|
241
|
+
'• Total API Calls: {:,}<br>'
|
242
|
+
'• Last 24h: N/A<br>'
|
243
|
+
'• Last 7 days: N/A<br>'
|
244
|
+
'• Last 30 days: N/A<br>'
|
245
|
+
'<br>'
|
246
|
+
'<em>Detailed usage tracking will be implemented with analytics service.</em>'
|
247
|
+
'</div>',
|
248
|
+
obj.usage_count
|
249
|
+
)
|
250
|
+
|
251
|
+
usage_history.short_description = "Usage History"
|
252
|
+
|
253
|
+
# Admin Actions
|
254
|
+
|
255
|
+
@action(description="🔑 Regenerate API Key")
|
256
|
+
def regenerate_key(self, request, object_id):
|
257
|
+
"""Regenerate API key."""
|
258
|
+
api_key = self.get_object(request, object_id)
|
259
|
+
if not api_key:
|
260
|
+
self.message_user(request, "API key not found.", level='error')
|
261
|
+
return redirect(request.META.get('HTTP_REFERER', '/admin/'))
|
262
|
+
|
263
|
+
# Generate new key
|
264
|
+
import secrets
|
265
|
+
api_key.key_value = f"ak_{secrets.token_urlsafe(32)}"
|
266
|
+
api_key.usage_count = 0 # Reset usage
|
267
|
+
api_key.save()
|
268
|
+
|
269
|
+
self.message_user(
|
270
|
+
request,
|
271
|
+
f"API key '{api_key.name}' has been regenerated. Usage count reset to 0.",
|
272
|
+
level='success'
|
273
|
+
)
|
274
|
+
return redirect(request.META.get('HTTP_REFERER', '/admin/'))
|
275
|
+
|
276
|
+
@action(
|
277
|
+
description="📊 View Usage Statistics",
|
278
|
+
icon="analytics",
|
279
|
+
variant=ActionVariant.INFO
|
280
|
+
)
|
281
|
+
def view_usage_stats(self, request, object_id):
|
282
|
+
"""View detailed usage statistics."""
|
283
|
+
api_key = self.get_object(request, object_id)
|
284
|
+
if api_key:
|
285
|
+
self.message_user(
|
286
|
+
request,
|
287
|
+
f"Usage statistics view for '{api_key.name}' would open here.",
|
288
|
+
level='info'
|
289
|
+
)
|
290
|
+
return redirect(request.META.get('HTTP_REFERER', '/admin/'))
|
291
|
+
|
292
|
+
@action(
|
293
|
+
description="🔒 Deactivate Key",
|
294
|
+
icon="block",
|
295
|
+
variant=ActionVariant.WARNING
|
296
|
+
)
|
297
|
+
def deactivate_key(self, request, object_id):
|
298
|
+
"""Deactivate API key."""
|
299
|
+
api_key = self.get_object(request, object_id)
|
300
|
+
if not api_key:
|
301
|
+
self.message_user(request, "API key not found.", level='error')
|
302
|
+
return redirect(request.META.get('HTTP_REFERER', '/admin/'))
|
303
|
+
|
304
|
+
api_key.is_active = False
|
305
|
+
api_key.save()
|
306
|
+
|
307
|
+
self.message_user(
|
308
|
+
request,
|
309
|
+
f"API key '{api_key.name}' has been deactivated.",
|
310
|
+
level='warning'
|
311
|
+
)
|
312
|
+
return redirect(request.META.get('HTTP_REFERER', '/admin/'))
|
313
|
+
|
314
|
+
# Bulk Actions
|
315
|
+
|
316
|
+
def activate_keys(self, request, queryset):
|
317
|
+
"""Activate selected API keys."""
|
318
|
+
count = queryset.update(is_active=True)
|
319
|
+
self.message_user(
|
320
|
+
request,
|
321
|
+
f"Successfully activated {count} API keys.",
|
322
|
+
level='success'
|
323
|
+
)
|
324
|
+
|
325
|
+
activate_keys.short_description = "🔓 Activate selected API keys"
|
326
|
+
|
327
|
+
def deactivate_keys(self, request, queryset):
|
328
|
+
"""Deactivate selected API keys."""
|
329
|
+
count = queryset.update(is_active=False)
|
330
|
+
self.message_user(
|
331
|
+
request,
|
332
|
+
f"Successfully deactivated {count} API keys.",
|
333
|
+
level='warning'
|
334
|
+
)
|
335
|
+
|
336
|
+
deactivate_keys.short_description = "🔒 Deactivate selected API keys"
|
337
|
+
|
338
|
+
def reset_usage(self, request, queryset):
|
339
|
+
"""Reset usage count for selected API keys."""
|
340
|
+
count = queryset.update(usage_count=0)
|
341
|
+
self.message_user(
|
342
|
+
request,
|
343
|
+
f"Successfully reset usage count for {count} API keys.",
|
344
|
+
level='info'
|
345
|
+
)
|
346
|
+
|
347
|
+
reset_usage.short_description = "🔄 Reset usage count"
|