закомитил обработчик который обрабатывал сигнал смены аватара

This commit is contained in:
admin i 2025-12-02 09:23:51 +03:00
parent 18bc13b8f8
commit 28a6e9e65f

View File

@ -10,57 +10,61 @@ from .models import Employee, EmployeeAction
from bots.models import BotSubscriber
@receiver(pre_save, sender=Employee)
def compress_and_cleanup_avatar(sender, instance: Employee, **kwargs):
"""Сжимает новый аватар и удаляет старый файл при замене."""
# Импортируем здесь, чтобы избежать циклических импортов
from common.image_utils import compress_avatar
avatar_field = instance.avatar
avatar_name = getattr(avatar_field, "name", "")
if avatar_field and avatar_name:
storage = avatar_field.storage
if storage.exists(avatar_name):
try:
avatar_field.open("rb")
avatar_field.seek(0)
original_data = avatar_field.read()
if False: # pragma: no cover - временно отключаем сигнал для тестирования
@receiver(pre_save, sender=Employee)
def compress_and_cleanup_avatar(sender, instance: Employee, **kwargs):
"""Сжимает новый аватар и удаляет старый файл при замене."""
# Импортируем здесь, чтобы избежать циклических импортов
from common.image_utils import compress_avatar
avatar_field = instance.avatar
avatar_name = getattr(avatar_field, "name", "")
if avatar_field and avatar_name:
storage = avatar_field.storage
if storage.exists(avatar_name):
try:
avatar_field.open("rb")
avatar_field.seek(0)
original_data = avatar_field.read()
compressed_data = compress_avatar(original_data)
compressed_data = compress_avatar(original_data)
if len(compressed_data) < len(original_data):
filename = avatar_name.split("/")[-1]
if not filename.lower().endswith(".jpg"):
filename = filename.rsplit(".", 1)[0] + ".jpg"
if len(compressed_data) < len(original_data):
filename = avatar_name.split("/")[-1]
if not filename.lower().endswith(".jpg"):
filename = filename.rsplit(".", 1)[0] + ".jpg"
avatar_field.save(
filename,
ContentFile(compressed_data),
save=False,
avatar_field.save(
filename,
ContentFile(compressed_data),
save=False,
)
except FileNotFoundError:
print(
"Avatar file missing during compression: "
f"{avatar_name}"
)
except FileNotFoundError:
print(f"Avatar file missing during compression: {avatar_name}")
except Exception as e:
# Логируем ошибку, но не прерываем сохранение
print(f"Error compressing avatar: {e}")
# Удаляем старый файл если он был заменен
if instance.pk is None:
return
try:
old = sender.objects.get(pk=instance.pk)
except sender.DoesNotExist:
return
# Если аватар изменился или удален
if old.avatar and old.avatar != instance.avatar:
# Удаляем старый файл с диска
if os.path.isfile(old.avatar.path):
try:
os.remove(old.avatar.path)
except Exception as e:
print(f"Error deleting old avatar: {e}")
except Exception as e:
# Логируем ошибку, но не прерываем сохранение
print(f"Error compressing avatar: {e}")
# Удаляем старый файл если он был заменен
if instance.pk is None:
return
try:
old = sender.objects.get(pk=instance.pk)
except sender.DoesNotExist:
return
# Если аватар изменился или удален
if old.avatar and old.avatar != instance.avatar:
# Удаляем старый файл с диска
if os.path.isfile(old.avatar.path):
try:
os.remove(old.avatar.path)
except Exception as e:
print(f"Error deleting old avatar: {e}")
@receiver(pre_save, sender=Employee)