#!/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': '
Разработан комплексный корпоративный портал для компании TechCorp, включающий в себя систему управления документами, интеграцию с CRM-системой и модуль управления персоналом.
Основные функции: документооборот, календарь событий, внутренние новости, система заявок, интеграция с почтовыми сервисами.
', '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': 'Создано мобильное приложение для службы доставки еды с поддержкой iOS и Android платформ.
Функционал включает: поиск ресторанов по геолокации, онлайн-заказы, интеграцию с платежными системами, отслеживание курьера в реальном времени, система рейтингов и отзывов.
', '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': 'Разработана комплексная система аналитики для обработки больших данных с возможностями машинного обучения.
Включает: интерактивные дашборды, автоматизированные отчеты, прогнозирование трендов, интеграция с различными источниками данных, алгоритмы машинного обучения.
', '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': 'Создана масштабируемая e-commerce платформа, поддерживающая множественные магазины на одной основе.
Возможности: многопользовательская архитектура, система платежей, управление складом, программы лояльности, мобильная оптимизация, SEO инструменты.
', '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': 'Разработана полная дизайн-система для финтех компании, включающая создание фирменного стиля, UI-компонентов и подробного брендбука.
Результат: логотип и фирменный стиль, библиотека UI-компонентов, руководство по использованию бренда, адаптация для различных платформ.
', '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()