48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
from core.factories import UserFactory
|
|
from users.factories import SchoolClassFactory
|
|
from users.models import Role, UserRole, DEFAULT_SCHOOL_ID
|
|
|
|
|
|
def create_users(data=None):
|
|
Role.objects.create_default_roles()
|
|
|
|
teacher_role = Role.objects.get_default_teacher_role()
|
|
student_role = Role.objects.get_default_student_role()
|
|
|
|
if data is None:
|
|
teacher = UserFactory(username='teacher')
|
|
UserRole.objects.create(user=teacher, role=teacher_role)
|
|
|
|
for i in range(1, 7):
|
|
student = UserFactory(username='student{}'.format(i))
|
|
UserRole.objects.create(user=student, role=student_role)
|
|
SchoolClassFactory(users=[teacher, student])
|
|
|
|
else:
|
|
for school_class in data:
|
|
first, last = school_class.get('teacher')
|
|
teacher = UserFactory(
|
|
username='{}.{}'.format(first, last).lower(),
|
|
first_name=first,
|
|
last_name=last,
|
|
email='{}.{}@skillbox.example'.format(first, last).lower()
|
|
)
|
|
UserRole.objects.create(user=teacher, role=teacher_role)
|
|
students = []
|
|
|
|
for first, last in school_class.get('students'):
|
|
student = UserFactory(
|
|
username='{}.{}'.format(first, last).lower(),
|
|
first_name=first,
|
|
last_name=last,
|
|
email='{}.{}@skillbox.example'.format(first, last).lower()
|
|
)
|
|
UserRole.objects.create(user=student, role=student_role)
|
|
students.append(student)
|
|
|
|
SchoolClassFactory(
|
|
users=students + [teacher],
|
|
name=school_class.get('class'),
|
|
year='2018'
|
|
)
|