fix endpoint of create exam enrollments - fix overwriting exam dates

This commit is contained in:
dominik24c 2022-10-28 00:11:54 +02:00
parent 03c0fb4bb2
commit 03ffd355ed

View File

@ -28,6 +28,15 @@ def create_enrollments(examination_schedule_id: int, data: dict) -> dict:
if start_date.date() != end_date.date(): if start_date.date() != end_date.date():
abort(400, "Invalid dates! Only hours can be different!") abort(400, "Invalid dates! Only hours can be different!")
enrollment = Enrollment.query.filter(Enrollment.start_date >= start_date,
Enrollment.start_date < end_date).first()
if enrollment is not None:
abort(400, "You have just created enrollments for this range date!")
enrollment = Enrollment.query.filter(Enrollment.end_date > start_date, Enrollment.end_date <= end_date).first()
if enrollment is not None:
abort(400, "You have just created enrollments for this range date! `1")
delta = end_date - start_date delta = end_date - start_date
delta_in_minutes = delta.total_seconds() / 60 delta_in_minutes = delta.total_seconds() / 60
if delta_in_minutes % prt != 0: if delta_in_minutes % prt != 0:
@ -37,9 +46,9 @@ def create_enrollments(examination_schedule_id: int, data: dict) -> dict:
enrollments = [] enrollments = []
for i in range(amount): for i in range(amount):
sd = start_date + datetime.timedelta(minutes=i * prt) sd = start_date + datetime.timedelta(minutes=i * prt)
ed = start_date + datetime.timedelta(minutes=(i + 1) * prt) ed = start_date + datetime.timedelta(minutes=(i + 1) * prt)
enrollment = Enrollment(start_date=sd, end_date=ed, examination_schedule_id=examination_schedule_id) enrollment = Enrollment(start_date=sd, end_date=ed, examination_schedule_id=examination_schedule_id)
enrollments.append(enrollment) enrollments.append(enrollment)
db.session.add_all(enrollments) db.session.add_all(enrollments)
db.session.commit() db.session.commit()