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 с отображением всех медиа
46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
#!/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()}")
|