38146-vm/core/management/commands/create_test_users.py
2026-02-04 06:00:35 +00:00

60 lines
2.3 KiB
Python

from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
from core.models import Teacher, Student, Classroom, City, Governorate
class Command(BaseCommand):
help = 'Creates test users: one teacher and one student'
def handle(self, *args, **options):
# 1. Setup Dependencies
gov, _ = Governorate.objects.get_or_create(
name_en="Muscat",
defaults={'name_ar': "مسقط"}
)
city, _ = City.objects.get_or_create(
name_en="Seeb",
defaults={'name_ar': "السيب", 'governorate': gov}
)
classroom, _ = Classroom.objects.get_or_create(
name_en="Grade 10",
defaults={'name_ar': "الصف 10", 'description': "Test Classroom"}
)
# 2. Create Teacher
t_user, created = User.objects.get_or_create(username='teacher_test')
if created:
t_user.set_password('password123')
t_user.email = 'teacher@example.com'
t_user.first_name = 'John'
t_user.last_name = 'Doe (Teacher)'
t_user.save()
Teacher.objects.create(
user=t_user,
bio="I am a test teacher specializing in Mathematics.",
specialization="Mathematics"
)
self.stdout.write(self.style.SUCCESS(f"Created teacher: {t_user.username} (password123)"))
else:
self.stdout.write(self.style.WARNING(f"User {t_user.username} already exists"))
# 3. Create Student
s_user, created = User.objects.get_or_create(username='student_test')
if created:
s_user.set_password('password123')
s_user.email = 'student@example.com'
s_user.first_name = 'Jane'
s_user.last_name = 'Smith (Student)'
s_user.save()
Student.objects.create(
user=s_user,
classroom=classroom,
city=city,
governorate=gov,
mobile_number="1234567890",
is_email_verified=True
)
self.stdout.write(self.style.SUCCESS(f"Created student: {s_user.username} (password123)"))
else:
self.stdout.write(self.style.WARNING(f"User {s_user.username} already exists"))