Skip to content

Commit

Permalink
storage_thumbnail: fix, always use slugified url_key
Browse files Browse the repository at this point in the history
Both for creating and searching thumbnails.

This avoid an infinite creation of thumbnails on images as soon as an
`url_key` is provided.

This is a regression introduced by commit 1976597
  • Loading branch information
sebalix committed Jul 10, 2024
1 parent 7b3cda3 commit 66567fe
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
1 change: 1 addition & 0 deletions storage_thumbnail/models/thumbnail_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ def get_existing_thumbnail(self, size_x, size_y, url_key=None):
return thumbnail

def get_or_create_thumbnail(self, size_x, size_y, url_key=None):
url_key = self._get_url_key(url_key)
thumbnail = self.get_existing_thumbnail(size_x, size_y, url_key=url_key)
if not thumbnail and self.data:
vals = self.env["storage.thumbnail"]._prepare_thumbnail(
Expand Down
12 changes: 12 additions & 0 deletions storage_thumbnail/tests/test_thumbnail.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,18 @@ def test_thumbnail(self):
thumb.unlink()
self.assertTrue(file_id.to_delete)

def test_image_get_or_create_thumbnail_no_duplicate(self):
# Ensure no duplicate is generated thanks to unique url_key
image = self._create_image()
self.assertTrue(image.url)
self.assertEqual(len(image.thumbnail_ids), 2)
thumb = image.thumb_small_id
thumb.url_key = "test"
existing_thumb = image.get_or_create_thumbnail(
thumb.size_x, thumb.size_y, url_key="TEST"
)
self.assertEqual(thumb, existing_thumb)

def test_model(self):
image = self._create_image()
self.assertTrue(image.url)
Expand Down

0 comments on commit 66567fe

Please sign in to comment.