fix: cleanup
This commit is contained in:
+10
-3
@@ -50,16 +50,20 @@ class WebSettings(SingletonModel):
|
||||
logo_128 = models.ImageField(upload_to='assets', blank=True, null=True, verbose_name=_('logo 128x128'))
|
||||
logo_64 = models.ImageField(upload_to='assets', blank=True, null=True, verbose_name=_('logo 64x64'))
|
||||
logo_32 = models.ImageField(upload_to='assets', blank=True, null=True, verbose_name=_('logo 32x32'))
|
||||
|
||||
favicon_32 = models.ImageField(upload_to='assets', blank=True, null=True, verbose_name=_('favicon 32x32'))
|
||||
favicon_16 = models.ImageField(upload_to='assets', blank=True, null=True, verbose_name=_('favicon 16x16'))
|
||||
|
||||
theme_colors = models.JSONField(default=dict, verbose_name=_('colores del tema'), blank=True)
|
||||
|
||||
def get_resized_logo(self, size):
|
||||
def get_resized_logo(self, size, extension: str = 'png'):
|
||||
width, height = size
|
||||
image = Image.open(self.logo)
|
||||
image = image.resize(size, Image.Resampling.LANCZOS)
|
||||
buffer = BytesIO()
|
||||
image.save(fp=buffer, format='PNG')
|
||||
image.save(fp=buffer, format=extension.upper())
|
||||
|
||||
return ContentFile(buffer.getvalue(), name=f'logo_{width}.png')
|
||||
return ContentFile(buffer.getvalue(), name=f'logo_{width}.{extension}')
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.logo:
|
||||
@@ -68,6 +72,9 @@ class WebSettings(SingletonModel):
|
||||
self.logo_128 = self.get_resized_logo((128, 128))
|
||||
self.logo_256 = self.get_resized_logo((256, 256))
|
||||
|
||||
self.favicon_16 = self.get_resized_logo((16, 16), extension='ico')
|
||||
self.favicon_32 = self.get_resized_logo((32, 32), extension='ico')
|
||||
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
|
||||
Reference in New Issue
Block a user