feat: rebuild theme on web settings changed

This commit is contained in:
2025-01-23 09:04:50 +01:00
parent 1e3c2f6a51
commit d5a4345600
13 changed files with 167 additions and 10 deletions
+3
View File
@@ -4,3 +4,6 @@ from django.apps import AppConfig
class WebConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "web"
def ready(self):
from .signals import rebuild_theme
@@ -0,0 +1,20 @@
# Generated by Django 5.1.4 on 2025-01-21 11:16
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("web", "0002_remove_websettings_logo_240_websettings_logo_256"),
]
operations = [
migrations.AddField(
model_name="websettings",
name="theme_colors",
field=models.JSONField(
default=dict, verbose_name="colores del tema", blank=True
),
),
]
+3
View File
@@ -86,6 +86,9 @@ class WebSettings(SingletonModel):
logo_128 = models.ImageField(
upload_to="assets", blank=True, null=True, verbose_name=_("logo 128x128")
)
theme_colors = models.JSONField(
default=dict, verbose_name=_("colores del tema"), blank=True
)
def get_resized_logo(self, size):
width, height = size
+11 -1
View File
@@ -1,7 +1,9 @@
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.core.management import call_command
from shop.models import Cart, CartItem
from shop.signals import clear_cart, send_order_email
from web.models import WebSettings
@receiver(clear_cart, dispatch_uid="clear_cart")
@@ -13,3 +15,11 @@ def create_payment_from_redsys(sender, **kwargs):
@receiver(send_order_email, dispatch_uid="send_order_email")
def create_payment_from_redsys(sender, **kwargs):
pass
@receiver(post_save, sender=WebSettings)
def rebuild_theme(sender, instance: WebSettings, **kwargs):
try:
call_command("build_tailwind_theme")
except Exception:
pass
+2 -1
View File
@@ -11,7 +11,8 @@ from web.views.components import (
list_wishlisted_products,
update_customer_address,
user_info_component,
wishlist_button, change_password_component,
wishlist_button,
change_password_component,
)
from web.views.users import (
login,