def create_course(*,
name: str,
start_date: datetime,
end_date: datetime,
repository: str,
facebook_group: str=None,
video_channel: str=None,
slug_url: str=None,
logo: BinaryIO=None,
public: bool=True,
description: str="") -> Course:
if Course.objects.filter(name=name).exists():
raise ValidationError('Course already exists')
course = Course.objects.create(
name=name,
start_date=start_date,
end_date=end_date,
repository=repository,
facebook_group=facebook_group,
video_channel=video_channel,
slug_url=slug_url,
logo=logo,
public=public
)
weeks = course.duration_in_weeks
start_date = course.start_date
start_date = start_date - timedelta(days=start_date.weekday())
week_instances = []
for i in range(1, weeks + 1):
current = Week(course=course,
number=i,
start_date=start_date,
end_date=start_date + timedelta(days=7))
start_date = current.end_date
week_instances.append(current)
Week.objects.bulk_create(week_instances)
CourseDescription.objects.create(course=course, verbose=description)
return course
评论列表
文章目录