Исправление отображения фото в POS и улучшение обработки изображений
- Исправлен POS для использования миниатюр вместо оригиналов для быстрой загрузки - Убран fallback на оригиналы - показываем миниатюру или ничего (лучше видно ошибки) - Исправлен ImageService - возвращает пустую строку если миниатюра обработанного файла не найдена - Исправлена ошибка JavaScript при массовом удалении фото (insertAdjacentElement на null) - Добавлен контейнер photos-messages-container для надежного отображения сообщений - Улучшено логирование ImageService для отладки путей к файлам - Добавлена проверка exists() с детальным логированием в TenantAwareFileSystemStorage
This commit is contained in:
@@ -99,7 +99,12 @@ def get_showcase_kits_for_pos():
|
||||
|
||||
for photo in photos:
|
||||
if photo.kit_id not in kit_photos:
|
||||
kit_photos[photo.kit_id] = photo.get_thumbnail_url()
|
||||
if photo and photo.image:
|
||||
thumbnail_url = photo.get_thumbnail_url()
|
||||
# Если миниатюра не найдена, возвращаем None (без фото)
|
||||
if not thumbnail_url:
|
||||
thumbnail_url = None
|
||||
kit_photos[photo.kit_id] = thumbnail_url
|
||||
|
||||
# Формируем результат
|
||||
showcase_kits = []
|
||||
@@ -776,7 +781,12 @@ def get_items_api(request):
|
||||
for p in products_qs:
|
||||
image_url = None
|
||||
if hasattr(p, 'first_photo_list') and p.first_photo_list:
|
||||
image_url = p.first_photo_list[0].get_thumbnail_url()
|
||||
photo = p.first_photo_list[0]
|
||||
if photo and photo.image:
|
||||
image_url = photo.get_thumbnail_url()
|
||||
# Если миниатюра не найдена, возвращаем None (без фото)
|
||||
if not image_url:
|
||||
image_url = None
|
||||
|
||||
available = p.available_qty
|
||||
reserved = p.reserved_qty
|
||||
@@ -827,7 +837,12 @@ def get_items_api(request):
|
||||
for k in kits_qs:
|
||||
image_url = None
|
||||
if hasattr(k, 'first_photo_list') and k.first_photo_list:
|
||||
image_url = k.first_photo_list[0].get_thumbnail_url()
|
||||
photo = k.first_photo_list[0]
|
||||
if photo and photo.image:
|
||||
image_url = photo.get_thumbnail_url()
|
||||
# Если миниатюра не найдена, возвращаем None (без фото)
|
||||
if not image_url:
|
||||
image_url = None
|
||||
|
||||
kits.append({
|
||||
'id': k.id,
|
||||
@@ -893,8 +908,15 @@ def get_product_kit_details(request, kit_id):
|
||||
'price': str(ki.product.actual_price)
|
||||
} for ki in kit.kit_items.all()]
|
||||
|
||||
# Фото
|
||||
photo_url = kit.photos.first().image.url if kit.photos.exists() else None
|
||||
# Фото (используем миниатюру для быстрой загрузки)
|
||||
photo_url = None
|
||||
if kit.photos.exists():
|
||||
first_photo = kit.photos.first()
|
||||
if first_photo and first_photo.image:
|
||||
photo_url = first_photo.get_thumbnail_url()
|
||||
# Если миниатюра не найдена, возвращаем None (без фото)
|
||||
if not photo_url:
|
||||
photo_url = None
|
||||
|
||||
return JsonResponse({
|
||||
'success': True,
|
||||
|
||||
Reference in New Issue
Block a user