-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadd_sample_classes_script.py
163 lines (145 loc) · 9.25 KB
/
add_sample_classes_script.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
import os
import django
import random
from datetime import datetime, timedelta
# تنظیم محیط Django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
from classes.models import Class, Category
from django.contrib.auth.models import User
from django.utils.text import slugify
from django.utils import timezone
def create_categories():
"""ایجاد دستهبندیهای نمونه"""
categories = [
'برنامهنویسی',
'هوش مصنوعی',
'طراحی وب',
'علوم داده',
'مهارتهای نرم'
]
created_categories = []
for cat_name in categories:
category, created = Category.objects.get_or_create(
name=cat_name
)
created_categories.append(category)
if created:
print(f'دستهبندی جدید ایجاد شد: {cat_name}')
else:
print(f'دستهبندی از قبل وجود داشت: {cat_name}')
return created_categories
def create_classes(categories):
"""ایجاد کلاسهای نمونه"""
# لیست تمام کاربران
users = list(User.objects.all())
if not users:
print("هیچ کاربری در سیستم وجود ندارد. لطفا ابتدا یک کاربر ایجاد کنید.")
return
# اطلاعات کلاسها
classes_data = [
{
'title': 'کلاس پیشرفته هوش مصنوعی',
'description': 'در این دوره با مفاهیم پیشرفته هوش مصنوعی، یادگیری عمیق و کاربردهای عملی آن آشنا خواهید شد. این دوره برای افرادی طراحی شده که آشنایی اولیه با برنامهنویسی پایتون و مفاهیم پایه هوش مصنوعی دارند.',
'instructor': 'دکتر فاطمه حسینی',
'instructor_bio': 'دکتر فاطمه حسینی دارای مدرک دکترای هوش مصنوعی از دانشگاه تهران و با ۱۰ سال سابقه تدریس و پژوهش در زمینه یادگیری عمیق است.',
'capacity': 15,
'price': 2500000,
'status': 'upcoming',
'category': categories[1], # هوش مصنوعی
'prerequisites': 'آشنایی با پایتون و مفاهیم پایه یادگیری ماشین',
'schedule': 'شنبهها و دوشنبهها، ساعت ۱۶ الی ۱۸',
'location': 'دانشکده مهندسی کامپیوتر، کلاس ۱۰۲',
},
{
'title': 'طراحی وب با React',
'description': 'در این دوره با کتابخانه React و فریمورک Tailwind CSS برای طراحی وبسایتهای مدرن و واکنشگرا آشنا خواهید شد. در پایان دوره قادر خواهید بود یک وبسایت کامل با استفاده از این تکنولوژیها طراحی کنید.',
'instructor': 'مهندس علی احمدی',
'instructor_bio': 'مهندس علی احمدی توسعهدهنده ارشد فرانتاند با ۷ سال تجربه در شرکتهای بزرگ فناوری و متخصص در React و فناوریهای مدرن وب است.',
'capacity': 20,
'price': 1800000,
'status': 'ongoing',
'category': categories[2], # طراحی وب
'prerequisites': 'آشنایی با HTML، CSS و JavaScript',
'schedule': 'یکشنبهها و سهشنبهها، ساعت ۱۴ الی ۱۶',
'location': 'مرکز آموزشهای تخصصی، سالن کنفرانس',
},
{
'title': 'آشنایی با تحلیل داده',
'description': 'این دوره مقدماتی به مفاهیم پایه تحلیل داده میپردازد. شما با ابزارهای تحلیل داده در پایتون مانند Pandas، NumPy و Matplotlib آشنا خواهید شد و یاد میگیرید چگونه دادهها را پاکسازی، تحلیل و مصورسازی کنید.',
'instructor': 'دکتر امیر مجیدی',
'instructor_bio': 'دکتر امیر مجیدی دانشآموخته علوم داده از دانشگاه شریف و دارای سابقه همکاری با شرکتهای بزرگ در پروژههای تحلیل دادههای کلان است.',
'capacity': 25,
'price': 1500000,
'status': 'completed',
'category': categories[3], # علوم داده
'prerequisites': 'آشنایی مقدماتی با پایتون',
'schedule': 'پنجشنبهها، ساعت ۱۰ الی ۱۳',
'location': 'دانشکده ریاضی، آزمایشگاه کامپیوتر',
},
{
'title': 'برنامهنویسی پایتون از صفر',
'description': 'این دوره برای افرادی طراحی شده که هیچ پیشزمینهای در برنامهنویسی ندارند. از مفاهیم پایه شروع میکنیم و تا ساخت پروژههای کاربردی پیش میرویم. پایتون به دلیل سادگی و کاربردهای گسترده، انتخاب عالی برای شروع برنامهنویسی است.',
'instructor': 'مهندس محمد رضایی',
'instructor_bio': 'مهندس محمد رضایی بیش از ۵ سال سابقه تدریس برنامهنویسی به مبتدیان را دارد و متخصص در آموزش پایتون به روشهای کاربردی و عملی است.',
'capacity': 30,
'price': 1200000,
'status': 'upcoming',
'category': categories[0], # برنامهنویسی
'prerequisites': 'نیازی به پیشنیاز خاصی نیست',
'schedule': 'شنبهها و چهارشنبهها، ساعت ۹ الی ۱۱',
'location': 'دانشکده فنی مهندسی، سالن آمفیتئاتر',
},
{
'title': 'کارگاه مهارتهای ارائه مؤثر',
'description': 'در این کارگاه، تکنیکهای ارائه موثر و سخنرانی حرفهای را خواهید آموخت. مهارتهایی مانند کنترل اضطراب، زبان بدن مناسب، طراحی اسلاید، و پاسخ به سوالات از موضوعات این کارگاه هستند.',
'instructor': 'دکتر نگار کریمی',
'instructor_bio': 'دکتر نگار کریمی متخصص در زمینه ارتباطات و مهارتهای نرم با سابقه ارائه بیش از ۵۰ سمینار و کارگاه در سطح ملی و بینالمللی است.',
'capacity': 20,
'price': 800000,
'status': 'ongoing',
'category': categories[4], # مهارتهای نرم
'prerequisites': 'نیازی به پیشنیاز خاصی نیست',
'schedule': 'جمعهها، ساعت ۱۵ الی ۱۸',
'location': 'مرکز رشد و کارآفرینی، سالن کنفرانس',
}
]
for idx, class_data in enumerate(classes_data):
title = class_data['title']
slug = slugify(title)
# بررسی وجود کلاس
if Class.objects.filter(slug=slug).exists():
print(f'کلاس با عنوان "{title}" از قبل وجود دارد.')
continue
# تنظیم تاریخهای شروع و پایان
now = timezone.now().date()
if class_data['status'] == 'upcoming':
start_date = now + timedelta(days=random.randint(10, 30))
elif class_data['status'] == 'ongoing':
start_date = now - timedelta(days=random.randint(5, 15))
else: # completed
start_date = now - timedelta(days=random.randint(60, 90))
end_date = start_date + timedelta(days=random.randint(30, 60))
# ایجاد کلاس جدید
new_class = Class.objects.create(
title=title,
slug=slug,
description=class_data['description'],
instructor=class_data['instructor'],
instructor_bio=class_data['instructor_bio'],
start_date=start_date,
end_date=end_date,
capacity=class_data['capacity'],
price=class_data['price'],
status=class_data['status'],
category=class_data['category'],
prerequisites=class_data['prerequisites'],
schedule=class_data['schedule'],
location=class_data['location']
)
print(f'کلاس جدید ایجاد شد: {title}')
if __name__ == '__main__':
print('شروع اضافه کردن دادههای نمونه...')
categories = create_categories()
create_classes(categories)
print('اضافه کردن دادههای نمونه با موفقیت به پایان رسید!')