File tree 3 files changed +24
-4
lines changed
3 files changed +24
-4
lines changed Original file line number Diff line number Diff line change 1
1
from django .apps import AppConfig
2
2
from django .conf import settings
3
3
4
+ from easy_thumbnails .optimize import thumbnail_created_callback
5
+ from easy_thumbnails .signals import thumbnail_created
6
+
4
7
5
8
class FdsCmsConfig (AppConfig ):
6
9
name = "fragdenstaat_de.fds_cms"
@@ -13,9 +16,10 @@ def ready(self):
13
16
14
17
account_merged .connect (merge_user )
15
18
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 )
18
21
22
+ if settings .FDS_THUMBNAIL_ENABLE_AVIF :
19
23
thumbnail_created .connect (store_as_avif )
20
24
21
25
@@ -32,3 +36,11 @@ def store_as_avif(sender, **kwargs):
32
36
from .tasks import generate_avif_thumbnail
33
37
34
38
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
+ )
Original file line number Diff line number Diff line change 4
4
from django .core .files .base import ContentFile
5
5
6
6
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
8
9
from PIL import Image
9
10
10
11
try :
@@ -35,3 +36,11 @@ def generate_avif_thumbnail(filepath: str, storage):
35
36
out_file .seek (0 )
36
37
storage .save (avif_path , ContentFile (out_file .read ()))
37
38
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 )
Original file line number Diff line number Diff line change @@ -42,7 +42,6 @@ def INSTALLED_APPS(self):
42
42
"menus" ,
43
43
"sekizai" ,
44
44
# easy thumbnails comes from froide
45
- "easy_thumbnails.optimize" ,
46
45
"filer" ,
47
46
"mptt" ,
48
47
"logentry_admin" ,
You can’t perform that action at this time.
0 commit comments