Исправлена подсветка шаблонов, добавлен макет тестовый список, исправлены проблемы со шрифтами

- Добавлено поле template_id в модель DesignSettings
- Исправлена логика подсветки выбранного шаблона в TemplatesSelector
- Добавлен новый макет 'test-list' - полный несворачиваемый список
- Обновлены шрифты с поддержкой CSS переменных
- Создан CSS модуль для тестового списка
- Обеспечена совместимость иконок во всех макетах
This commit is contained in:
2025-11-09 11:53:17 +09:00
parent 0c1a39f07d
commit 90ac03663f
8 changed files with 429 additions and 88 deletions

View File

@@ -12,6 +12,7 @@ class DesignSettingsSerializer(serializers.ModelSerializer):
model = DesignSettings
fields = [
'id',
'template_id',
'theme_color',
'background_image',
'background_image_url',
@@ -120,7 +121,7 @@ class DesignSettingsSerializer(serializers.ModelSerializer):
"""
Валидация типа макета дашборда
"""
valid_layouts = ['sidebar', 'grid', 'list', 'cards', 'compact', 'masonry', 'timeline', 'magazine']
valid_layouts = ['sidebar', 'grid', 'list', 'cards', 'compact', 'masonry', 'timeline', 'magazine', 'test-list']
if value not in valid_layouts:
raise serializers.ValidationError(f'Макет должен быть одним из: {", ".join(valid_layouts)}')
return value
@@ -252,6 +253,14 @@ class DesignSettingsSerializer(serializers.ModelSerializer):
raise serializers.ValidationError('Название шрифта слишком длинное')
return value
def validate_template_id(self, value):
"""
Валидация ID шаблона
"""
if value and len(value) > 50:
raise serializers.ValidationError('ID шаблона слишком длинный')
return value
class PublicDesignSettingsSerializer(serializers.ModelSerializer):
"""