Fix: Auto-cleanup temp files after photo processing

- Added temp file deletion in Celery task after successful processing
- Added temp file cleanup in sync fallback method
- Added temp file removal in delete() if processing never completed
- Prevents accumulation of orphaned files in media/<entity>/temp/ folders
This commit is contained in:
2025-11-15 22:28:41 +03:00
parent 53fbb6d3c1
commit 9363527e50
9 changed files with 275 additions and 18 deletions

View File

@@ -43,10 +43,17 @@ class ProductListView(LoginRequiredMixin, PermissionRequiredMixin, ListView):
if category_id:
queryset = queryset.filter(categories__id=category_id)
# Фильтр по статусу
# Фильтр по статусу (новая система)
status_filter = self.request.GET.get('status')
if status_filter:
queryset = queryset.filter(status=status_filter)
else:
# Фильтр по is_active для обратной совместимости (старая система)
is_active_filter = self.request.GET.get('is_active')
if is_active_filter == '1':
queryset = queryset.filter(status='active')
elif is_active_filter == '0':
queryset = queryset.filter(status__in=['archived', 'discontinued'])
# Фильтр по тегам
tags = self.request.GET.getlist('tags')
@@ -250,6 +257,7 @@ class CombinedProductListView(LoginRequiredMixin, PermissionRequiredMixin, ListV
search_query = self.request.GET.get('search')
category_id = self.request.GET.get('category')
status_filter = self.request.GET.get('status')
is_active_filter = self.request.GET.get('is_active')
# Фильтрация по поиску
if search_query:
@@ -273,10 +281,18 @@ class CombinedProductListView(LoginRequiredMixin, PermissionRequiredMixin, ListV
products = products.filter(categories__id=category_id)
kits = kits.filter(categories__id=category_id)
# Фильтрация по статусу
# Фильтрация по статусу (новая система)
if status_filter:
products = products.filter(status=status_filter)
kits = kits.filter(status=status_filter)
else:
# Фильтрация по is_active для обратной совместимости (старая система)
if is_active_filter == '1':
products = products.filter(status='active')
kits = kits.filter(status='active')
elif is_active_filter == '0':
products = products.filter(status__in=['archived', 'discontinued'])
kits = kits.filter(status__in=['archived', 'discontinued'])
# Добавляем type для различения в шаблоне
products_list = list(products.order_by('-created_at'))