Добавлена функциональность системного клиента для анонимных покупок
- Добавлено поле is_system_customer в модель Customer с индексом - Системный клиент создается автоматически при создании нового тенанта - Реализована защита системного клиента от редактирования и удаления: - Защита на уровне модели (save/delete методы) - Защита на уровне формы (валидация) - Защита на уровне представлений (проверки с дружественными сообщениями) - Защита в админке (readonly поля, запрет удаления) - Системный клиент скрыт из списков и поиска на фронтенде - Создан информационный шаблон для отображения системного клиента - Исправлена обработка NULL значений для полей email/phone (Django best practice) - Добавлено отображение "Не указано" вместо None в карточке клиента 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -285,6 +285,20 @@ class TenantRegistrationAdmin(admin.ModelAdmin):
|
||||
else:
|
||||
logger.warning(f"Пользователь с email {settings.TENANT_ADMIN_EMAIL} уже существует в тенанте")
|
||||
|
||||
# Создаем системного клиента для анонимных продаж
|
||||
logger.info(f"Создание системного клиента для тенанта: {client.id}")
|
||||
from customers.models import Customer
|
||||
|
||||
try:
|
||||
system_customer, created = Customer.get_or_create_system_customer()
|
||||
if created:
|
||||
logger.info(f"Системный клиент создан: {system_customer.id} ({system_customer.name})")
|
||||
else:
|
||||
logger.info(f"Системный клиент уже существует: {system_customer.id} ({system_customer.name})")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при создании системного клиента: {e}", exc_info=True)
|
||||
# Не прерываем процесс, т.к. это не критично
|
||||
|
||||
# Возвращаемся в public схему
|
||||
connection.set_schema_to_public()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user