Skip to content

Commit eacee7d

Browse files
committed
⚡️ Run thumbnail optimization in task
1 parent 45ff20b commit eacee7d

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

fragdenstaat_de/fds_cms/apps.py

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
from django.apps import AppConfig
22
from django.conf import settings
33

4+
from easy_thumbnails.optimize import thumbnail_created_callback
5+
from easy_thumbnails.signals import thumbnail_created
6+
47

58
class FdsCmsConfig(AppConfig):
69
name = "fragdenstaat_de.fds_cms"
@@ -13,9 +16,10 @@ def ready(self):
1316

1417
account_merged.connect(merge_user)
1518

16-
if settings.FDS_THUMBNAIL_ENABLE_AVIF:
17-
from easy_thumbnails.signals import thumbnail_created
19+
thumbnail_created.disconnect(thumbnail_created_callback)
20+
thumbnail_created.connect(async_optimize_thumbnail)
1821

22+
if settings.FDS_THUMBNAIL_ENABLE_AVIF:
1923
thumbnail_created.connect(store_as_avif)
2024

2125

@@ -32,3 +36,11 @@ def store_as_avif(sender, **kwargs):
3236
from .tasks import generate_avif_thumbnail
3337

3438
generate_avif_thumbnail.delay(sender.name, sender.storage)
39+
40+
41+
def async_optimize_thumbnail(sender, **kwargs):
42+
from .tasks import optimize_thumbnail_task
43+
44+
optimize_thumbnail_task.delay(
45+
sender.name, sender.file, sender.storage, sender.thumbnail_options
46+
)

fragdenstaat_de/fds_cms/tasks.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
from django.core.files.base import ContentFile
55

66
from celery import shared_task
7-
from easy_thumbnails.files import generate_all_aliases
7+
from easy_thumbnails.files import ThumbnailFile, generate_all_aliases
8+
from easy_thumbnails.optimize import optimize_thumbnail
89
from PIL import Image
910

1011
try:
@@ -35,3 +36,11 @@ def generate_avif_thumbnail(filepath: str, storage):
3536
out_file.seek(0)
3637
storage.save(avif_path, ContentFile(out_file.read()))
3738
logger.info("Done converting %s to avif", filepath)
39+
40+
41+
@shared_task
42+
def optimize_thumbnail_task(name, file, storage, thumbnail_options):
43+
thumbnail = ThumbnailFile(
44+
name=name, file=file, storage=storage, thumbnail_options=thumbnail_options
45+
)
46+
optimize_thumbnail(thumbnail)

fragdenstaat_de/settings/base.py

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ def INSTALLED_APPS(self):
4242
"menus",
4343
"sekizai",
4444
# easy thumbnails comes from froide
45-
"easy_thumbnails.optimize",
4645
"filer",
4746
"mptt",
4847
"logentry_admin",

0 commit comments

Comments
 (0)