import logging from celery import shared_task from core.media import safe_process_public_image logger = logging.getLogger(__name__) @shared_task def process_uploaded_image(gallery_id): """Process gallery image derivatives and refresh metadata.""" try: from .models import Gallery gallery_item = Gallery.objects.get(id=gallery_id) if gallery_item.image: result = safe_process_public_image(gallery_item.image, "gallery", force=True) if result: Gallery.objects.filter(pk=gallery_item.pk).update( file_size=result.file_size, width=result.width, height=result.height, ) logger.info(f"Processed image: {gallery_item.title}") return f"Processed image: {gallery_item.title}" except Exception as exc: logger.error(f"Failed to process image: {exc}") raise exc