Обновления в tenants: админ, модели, миграции и сервисы

This commit is contained in:
2026-01-08 22:13:20 +03:00
parent 7f91244d63
commit 76acf419fc
4 changed files with 100 additions and 34 deletions

View File

@@ -176,12 +176,20 @@ class TenantRegistrationAdmin(admin.ModelAdmin):
def reject_registrations(self, request, queryset):
"""Массовое отклонение заявок"""
rejected_count = queryset.filter(status=TenantRegistration.STATUS_PENDING).update(
status=TenantRegistration.STATUS_REJECTED,
processed_at=timezone.now(),
processed_by=request.user,
rejection_reason="Отклонено массовым действием"
)
from platform_admin.models import PlatformAdmin
# Получаем processed_by только если это PlatformAdmin
processed_by = request.user if isinstance(request.user, PlatformAdmin) else None
# Обновляем каждую заявку индивидуально (нельзя использовать update с FK на другую модель)
rejected_count = 0
for registration in queryset.filter(status=TenantRegistration.STATUS_PENDING):
registration.status = TenantRegistration.STATUS_REJECTED
registration.processed_at = timezone.now()
registration.processed_by = processed_by
registration.rejection_reason = "Отклонено массовым действием"
registration.save()
rejected_count += 1
if rejected_count > 0:
messages.success(request, f"Отклонено заявок: {rejected_count}")
@@ -251,10 +259,13 @@ class TenantRegistrationAdmin(admin.ModelAdmin):
messages.error(request, f"Ошибка при активации: {str(e)}")
elif 'reject' in request.GET and registration.status == TenantRegistration.STATUS_PENDING:
from platform_admin.models import PlatformAdmin
# Обрабатываем отклонение
registration.status = TenantRegistration.STATUS_REJECTED
registration.processed_at = timezone.now()
registration.processed_by = request.user
# processed_by только если это PlatformAdmin
registration.processed_by = request.user if isinstance(request.user, PlatformAdmin) else None
registration.rejection_reason = "Отклонено администратором"
registration.save()
messages.warning(request, f"Заявка '{registration.shop_name}' отклонена.")