Implement modern media gallery with enhanced features
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
- Fix CSS loading issue in project_detail.html template - Add comprehensive ModernMediaGallery JavaScript class with touch navigation - Implement glassmorphism design with backdrop-filter effects - Add responsive breakpoint system for mobile devices - Include embedded critical CSS styles for gallery functionality - Add technology sidebar with vertical list layout and hover effects - Support for images, videos, and embedded content with thumbnails - Add lightbox integration and media type badges - Implement progress bar and thumbnail navigation - Add keyboard controls (arrow keys) and touch swipe gestures - Include supplementary styles for video/embed placeholders - Fix template block naming compatibility (extra_css → extra_styles)
This commit is contained in:
192
create_test_projects.py
Normal file
192
create_test_projects.py
Normal file
@@ -0,0 +1,192 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import django
|
||||
from datetime import datetime, date
|
||||
|
||||
# Настройка Django
|
||||
sys.path.append('/app/smartsoltech')
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'smartsoltech.settings')
|
||||
django.setup()
|
||||
|
||||
from web.models import Project, Category, Client, Service, Order
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
def create_test_projects():
|
||||
# Создаем или получаем категории
|
||||
categories = []
|
||||
|
||||
cat_web, _ = Category.objects.get_or_create(
|
||||
slug='web-development',
|
||||
defaults={
|
||||
'name': 'Веб-разработка',
|
||||
'icon': 'fas fa-code',
|
||||
'order': 1,
|
||||
'description': 'Создание веб-сайтов и приложений'
|
||||
}
|
||||
)
|
||||
categories.append(cat_web)
|
||||
|
||||
cat_mobile, _ = Category.objects.get_or_create(
|
||||
slug='mobile-apps',
|
||||
defaults={
|
||||
'name': 'Мобильные приложения',
|
||||
'icon': 'fas fa-mobile-alt',
|
||||
'order': 2,
|
||||
'description': 'Разработка iOS и Android приложений'
|
||||
}
|
||||
)
|
||||
categories.append(cat_mobile)
|
||||
|
||||
cat_design, _ = Category.objects.get_or_create(
|
||||
slug='design',
|
||||
defaults={
|
||||
'name': 'Дизайн',
|
||||
'icon': 'fas fa-palette',
|
||||
'order': 3,
|
||||
'description': 'UI/UX дизайн и брендинг'
|
||||
}
|
||||
)
|
||||
categories.append(cat_design)
|
||||
|
||||
cat_analytics, _ = Category.objects.get_or_create(
|
||||
slug='analytics',
|
||||
defaults={
|
||||
'name': 'Аналитика',
|
||||
'icon': 'fas fa-chart-bar',
|
||||
'order': 4,
|
||||
'description': 'Системы аналитики и отчетности'
|
||||
}
|
||||
)
|
||||
categories.append(cat_analytics)
|
||||
|
||||
cat_ecommerce, _ = Category.objects.get_or_create(
|
||||
slug='ecommerce',
|
||||
defaults={
|
||||
'name': 'E-commerce',
|
||||
'icon': 'fas fa-shopping-cart',
|
||||
'order': 5,
|
||||
'description': 'Интернет-магазины и торговые платформы'
|
||||
}
|
||||
)
|
||||
categories.append(cat_ecommerce)
|
||||
|
||||
# Создаем или получаем тестового клиента
|
||||
client, _ = Client.objects.get_or_create(
|
||||
email='test@example.com',
|
||||
defaults={
|
||||
'first_name': 'Тестовый',
|
||||
'last_name': 'Клиент',
|
||||
'phone_number': '+7-900-000-0000'
|
||||
}
|
||||
)
|
||||
|
||||
# Создаем или получаем тестовую услугу
|
||||
service, _ = Service.objects.get_or_create(
|
||||
name='Разработка сайта',
|
||||
defaults={
|
||||
'description': 'Профессиональная разработка веб-сайтов',
|
||||
'price': 100000.00,
|
||||
'category': cat_web
|
||||
}
|
||||
)
|
||||
|
||||
# Тестовые данные проектов
|
||||
test_projects = [
|
||||
{
|
||||
'name': 'Корпоративный портал TechCorp',
|
||||
'short_description': 'Современный корпоративный портал с системой управления документами, интеграцией с CRM и модулем HR.',
|
||||
'description': '<p>Разработан комплексный корпоративный портал для компании TechCorp, включающий в себя систему управления документами, интеграцию с CRM-системой и модуль управления персоналом.</p><p>Основные функции: документооборот, календарь событий, внутренние новости, система заявок, интеграция с почтовыми сервисами.</p>',
|
||||
'technologies': 'Django, PostgreSQL, Redis, Celery, Docker, React.js',
|
||||
'duration': '4 месяца',
|
||||
'team_size': 5,
|
||||
'views_count': 1245,
|
||||
'likes_count': 89,
|
||||
'completion_date': date(2024, 8, 15),
|
||||
'categories': [cat_web, cat_analytics],
|
||||
'is_featured': True
|
||||
},
|
||||
{
|
||||
'name': 'Мобильное приложение FoodDelivery',
|
||||
'short_description': 'Cross-platform приложение для доставки еды с геолокацией, онлайн-платежами и системой рейтингов.',
|
||||
'description': '<p>Создано мобильное приложение для службы доставки еды с поддержкой iOS и Android платформ.</p><p>Функционал включает: поиск ресторанов по геолокации, онлайн-заказы, интеграцию с платежными системами, отслеживание курьера в реальном времени, система рейтингов и отзывов.</p>',
|
||||
'technologies': 'React Native, Node.js, MongoDB, Socket.io, Stripe API',
|
||||
'duration': '6 месяцев',
|
||||
'team_size': 4,
|
||||
'views_count': 892,
|
||||
'likes_count': 156,
|
||||
'completion_date': date(2024, 10, 20),
|
||||
'categories': [cat_mobile, cat_ecommerce],
|
||||
'is_featured': False
|
||||
},
|
||||
{
|
||||
'name': 'Аналитическая панель SmartMetrics',
|
||||
'short_description': 'Интерактивная панель управления с визуализацией данных, машинным обучением и предиктивной аналитикой.',
|
||||
'description': '<p>Разработана комплексная система аналитики для обработки больших данных с возможностями машинного обучения.</p><p>Включает: интерактивные дашборды, автоматизированные отчеты, прогнозирование трендов, интеграция с различными источниками данных, алгоритмы машинного обучения.</p>',
|
||||
'technologies': 'Python, Django, PostgreSQL, Redis, TensorFlow, D3.js, Pandas',
|
||||
'duration': '5 месяцев',
|
||||
'team_size': 6,
|
||||
'views_count': 673,
|
||||
'likes_count': 124,
|
||||
'completion_date': date(2024, 7, 10),
|
||||
'categories': [cat_analytics, cat_web],
|
||||
'is_featured': True
|
||||
},
|
||||
{
|
||||
'name': 'E-commerce платформа ShopMaster',
|
||||
'short_description': 'Полнофункциональная платформа интернет-торговли с многопользовательскими магазинами и системой управления.',
|
||||
'description': '<p>Создана масштабируемая e-commerce платформа, поддерживающая множественные магазины на одной основе.</p><p>Возможности: многопользовательская архитектура, система платежей, управление складом, программы лояльности, мобильная оптимизация, SEO инструменты.</p>',
|
||||
'technologies': 'Laravel, MySQL, Redis, Elasticsearch, Vue.js, Stripe, PayPal',
|
||||
'duration': '8 месяцев',
|
||||
'team_size': 7,
|
||||
'views_count': 1567,
|
||||
'likes_count': 203,
|
||||
'completion_date': date(2024, 11, 5),
|
||||
'categories': [cat_ecommerce, cat_web, cat_mobile],
|
||||
'is_featured': True
|
||||
},
|
||||
{
|
||||
'name': 'Дизайн-система BrandKit',
|
||||
'short_description': 'Комплексная дизайн-система для финтех стартапа с фирменным стилем, UI-компонентами и брендбуком.',
|
||||
'description': '<p>Разработана полная дизайн-система для финтех компании, включающая создание фирменного стиля, UI-компонентов и подробного брендбука.</p><p>Результат: логотип и фирменный стиль, библиотека UI-компонентов, руководство по использованию бренда, адаптация для различных платформ.</p>',
|
||||
'technologies': 'Figma, Adobe Creative Suite, Principle, Sketch, InVision',
|
||||
'duration': '3 месяца',
|
||||
'team_size': 3,
|
||||
'views_count': 445,
|
||||
'likes_count': 78,
|
||||
'completion_date': date(2024, 9, 30),
|
||||
'categories': [cat_design],
|
||||
'is_featured': False
|
||||
}
|
||||
]
|
||||
|
||||
print(f"Текущее количество проектов: {Project.objects.count()}")
|
||||
|
||||
# Создаем проекты
|
||||
for i, project_data in enumerate(test_projects):
|
||||
categories_to_add = project_data.pop('categories')
|
||||
|
||||
project, created = Project.objects.get_or_create(
|
||||
name=project_data['name'],
|
||||
defaults={
|
||||
**project_data,
|
||||
'client': client,
|
||||
'service': service,
|
||||
'status': 'completed',
|
||||
'display_order': i + 1
|
||||
}
|
||||
)
|
||||
|
||||
if created:
|
||||
# Добавляем категории
|
||||
project.categories.set(categories_to_add)
|
||||
print(f"✅ Создан проект: {project.name}")
|
||||
else:
|
||||
print(f"⚠️ Проект уже существует: {project.name}")
|
||||
|
||||
print(f"\nИтого проектов в базе: {Project.objects.count()}")
|
||||
print(f"Завершенных проектов: {Project.objects.filter(status='completed').count()}")
|
||||
print(f"Избранных проектов: {Project.objects.filter(is_featured=True).count()}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
create_test_projects()
|
||||
Reference in New Issue
Block a user