закомитил обработчик который обрабатывал сигнал смены аватара
This commit is contained in:
parent
18bc13b8f8
commit
28a6e9e65f
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user