Добавлена система проектов с автоматическим ресайзом изображений и адаптивным дизайном
Some checks failed
continuous-integration/drone/push Build is failing

- Удалена старая система портфолио (PortfolioCategory, PortfolioItem)
- Расширена модель Project: slug, categories (M2M), thumbnail, media files, meta fields
- Объединены категории: ProjectCategory удалена, используется общая Category
- Автоматический ресайз thumbnail до 600x400px с умным кропом по центру
- Создан /projects/ - страница списка проектов с фильтрацией по категориям
- Создан /project/<pk>/ - детальная страница проекта с галереей Swiper
- Адаптивный дизайн: 3 карточки в ряд (десктоп), 2 (планшет), 1 (мобильный)
- Параллакс-эффект на изображениях при наведении
- Lazy loading для оптимизации загрузки
- Фильтры категорий в виде пилюль как на странице услуг
- Компактные карточки с фиксированной шириной
- Кликабельные проекты в service_detail с отображением всех медиа
This commit is contained in:
2025-11-26 09:44:14 +09:00
parent 5bcf3e8198
commit e7d6d5262d
26 changed files with 3029 additions and 447 deletions

45
create_test_data.py Normal file
View File

@@ -0,0 +1,45 @@
#!/usr/bin/env python
import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'smartsoltech.settings')
django.setup()
from web.models import ProjectCategory, Project
# Создаём категорию
cat, created = ProjectCategory.objects.get_or_create(
slug='web-development',
defaults={
'name': 'Веб-разработка',
'description': 'Разработка современных веб-приложений',
'icon': 'fas fa-laptop-code',
'order': 1,
'is_active': True
}
)
print(f"{'Создана' if created else 'Найдена'} категория: {cat.name}")
# Обновляем первый проект
project = Project.objects.first()
if project:
project.short_description = 'Корпоративный сайт SmartSolTech с современным дизайном'
project.description = '<h2>О проекте</h2><p>Разработка корпоративного сайта с использованием Django и современного дизайна.</p><h3>Особенности</h3><ul><li>Адаптивный дизайн</li><li>Админ-панель</li><li>Интеграция с Telegram</li></ul>'
if not project.slug:
project.slug = 'smartsoltech-website'
project.technologies = 'Python, Django, PostgreSQL, Bootstrap, JavaScript'
project.duration = '3 месяца'
project.team_size = 4
project.is_featured = True
project.display_order = 1
project.save()
project.categories.add(cat)
print(f"Обновлён проект: {project.name}")
print(f"URL: /project/{project.pk}/")
else:
print("Проектов не найдено")
print("\n=== Статистика ===")
print(f"Категорий: {ProjectCategory.objects.count()}")
print(f"Проектов: {Project.objects.count()}")
print(f"Завершённых проектов: {Project.objects.filter(status='completed').count()}")