feat: improve customer address views
This commit is contained in:
+23
-2
@@ -1,5 +1,9 @@
|
||||
from io import BytesIO
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
from django.db import models
|
||||
from django.utils.text import gettext_lazy as _
|
||||
from PIL import Image
|
||||
|
||||
from config.models import SingletonModel
|
||||
|
||||
@@ -75,13 +79,30 @@ class WebSettings(SingletonModel):
|
||||
theme_color = models.CharField(
|
||||
max_length=9, default="", blank=True, null=True, verbose_name=_("color de tema")
|
||||
)
|
||||
logo_240 = models.ImageField(
|
||||
upload_to="assets", blank=True, null=True, verbose_name=_("logo 240x240")
|
||||
|
||||
logo_256 = models.ImageField(
|
||||
upload_to="assets", blank=True, null=True, verbose_name=_("logo 256x256")
|
||||
)
|
||||
logo_128 = models.ImageField(
|
||||
upload_to="assets", blank=True, null=True, verbose_name=_("logo 128x128")
|
||||
)
|
||||
|
||||
def get_resized_logo(self, size):
|
||||
width, height = size
|
||||
image = Image.open(self.logo)
|
||||
image = image.resize(size, Image.Resampling.LANCZOS)
|
||||
buffer = BytesIO()
|
||||
image.save(fp=buffer, format="PNG")
|
||||
|
||||
return ContentFile(buffer.getvalue(), name=f"logo_{width}.png")
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.logo:
|
||||
self.logo_128 = self.get_resized_logo((128, 128))
|
||||
self.logo_256 = self.get_resized_logo((256, 256))
|
||||
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("ajustes de la web")
|
||||
verbose_name_plural = _("ajustes de la web")
|
||||
|
||||
Reference in New Issue
Block a user