Set due_dates for courses explicitly
This commit is contained in:
parent
c1f29a02a0
commit
5d29fb7a76
|
|
@ -1,8 +1,8 @@
|
|||
import json
|
||||
import random
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime
|
||||
|
||||
import wagtail_factories
|
||||
from dateutil.relativedelta import relativedelta, TH, TU
|
||||
from django.conf import settings
|
||||
from django.utils import timezone
|
||||
from slugify import slugify
|
||||
|
|
@ -41,7 +41,6 @@ from vbv_lernwelt.course_session.models import (
|
|||
CourseSessionAssignment,
|
||||
CourseSessionAttendanceCourse,
|
||||
)
|
||||
from vbv_lernwelt.duedate.models import DueDate
|
||||
from vbv_lernwelt.learnpath.models import (
|
||||
Circle,
|
||||
LearningContentAssignment,
|
||||
|
|
@ -99,30 +98,44 @@ def create_test_course(include_uk=True, include_vv=True, with_sessions=False):
|
|||
id=TEST_COURSE_SESSION_BERN_ID,
|
||||
start_date=now,
|
||||
)
|
||||
CourseSessionAttendanceCourse.objects.create(
|
||||
csac = CourseSessionAttendanceCourse.objects.create(
|
||||
course_session=cs_bern,
|
||||
learning_content=LearningContentAttendanceCourse.objects.get(
|
||||
slug="test-lehrgang-lp-circle-fahrzeug-lc-präsenzkurs-fahrzeug"
|
||||
),
|
||||
due_date=DueDate.objects.create(
|
||||
course_session=cs_bern,
|
||||
start=timezone.make_aware(
|
||||
(datetime.now() + timedelta(days=15)).replace(
|
||||
hour=10, minute=30, second=0, microsecond=0
|
||||
)
|
||||
),
|
||||
end=timezone.make_aware(
|
||||
(datetime.now() + timedelta(days=15)).replace(
|
||||
hour=17, minute=30, second=0, microsecond=0
|
||||
)
|
||||
),
|
||||
page=LearningContentAttendanceCourse.objects.get(
|
||||
slug="test-lehrgang-lp-circle-fahrzeug-lc-präsenzkurs-fahrzeug"
|
||||
),
|
||||
),
|
||||
location="Handelsschule KV Bern, Zimmer 123, Eigerstrasse 16, 3012 Bern",
|
||||
trainer="Roland Grossenbacher, roland.grossenbacher@helvetia.ch",
|
||||
)
|
||||
tuesday_in_two_weeks = (
|
||||
datetime.now() + relativedelta(weekday=TU(2)) + relativedelta(weeks=2)
|
||||
)
|
||||
csac.due_date.start = timezone.make_aware(
|
||||
tuesday_in_two_weeks.replace(hour=8, minute=30, second=0, microsecond=0)
|
||||
)
|
||||
csac.due_date.end = timezone.make_aware(
|
||||
tuesday_in_two_weeks.replace(hour=17, minute=0, second=0, microsecond=0)
|
||||
)
|
||||
csac.due_date.save()
|
||||
|
||||
csa = CourseSessionAssignment.objects.create(
|
||||
course_session=cs_bern,
|
||||
learning_content=LearningContentAssignment.objects.get(
|
||||
slug=f"{course.slug}-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice"
|
||||
),
|
||||
)
|
||||
next_thursday = datetime.now() + relativedelta(weekday=TH(2))
|
||||
csa.submission_deadline.start = timezone.make_aware(
|
||||
(next_thursday + relativedelta(weeks=3)).replace(
|
||||
hour=23, minute=59, second=59, microsecond=0
|
||||
)
|
||||
)
|
||||
csa.submission_deadline.save()
|
||||
csa.evaluation_deadline.start = timezone.make_aware(
|
||||
(next_thursday + relativedelta(weeks=5)).replace(
|
||||
hour=23, minute=59, second=59, microsecond=0
|
||||
)
|
||||
)
|
||||
csa.evaluation_deadline.save()
|
||||
|
||||
cs_zurich = CourseSession.objects.create(
|
||||
course_id=COURSE_TEST_ID,
|
||||
|
|
@ -155,18 +168,6 @@ def create_test_course(include_uk=True, include_vv=True, with_sessions=False):
|
|||
course_session=cs_zurich,
|
||||
user=student2,
|
||||
)
|
||||
course = Course.objects.get(id=COURSE_TEST_ID)
|
||||
for cs in CourseSession.objects.filter(course_id=COURSE_TEST_ID):
|
||||
for assignment in LearningContentAssignment.objects.descendant_of(
|
||||
course.coursepage
|
||||
):
|
||||
create_course_session_assignment(cs, assignment)
|
||||
for (
|
||||
attendance_course
|
||||
) in LearningContentAttendanceCourse.objects.descendant_of(
|
||||
course.coursepage
|
||||
):
|
||||
create_course_session_attendance_course(cs, attendance_course)
|
||||
|
||||
return course
|
||||
|
||||
|
|
@ -195,45 +196,6 @@ def create_test_assignment_submitted_data(assignment, course_session, user):
|
|||
)
|
||||
|
||||
|
||||
def create_course_session_assignment(course_session, assignment):
|
||||
csa, created = CourseSessionAssignment.objects.get_or_create(
|
||||
course_session=course_session,
|
||||
learning_content=assignment,
|
||||
)
|
||||
|
||||
if course_session.start_date is None:
|
||||
course_session.start_date = datetime.now() + timedelta(days=12)
|
||||
course_session.save()
|
||||
submission_deadline = csa.submission_deadline
|
||||
if submission_deadline:
|
||||
submission_deadline.start = course_session.start_date + timedelta(days=14)
|
||||
submission_deadline.save()
|
||||
evaluation_deadline = csa.evaluation_deadline
|
||||
if evaluation_deadline:
|
||||
evaluation_deadline.start = course_session.start_date + timedelta(days=28)
|
||||
evaluation_deadline.save()
|
||||
return csa
|
||||
|
||||
|
||||
def create_course_session_attendance_course(course_session, course):
|
||||
casc = CourseSessionAttendanceCourse.objects.create(
|
||||
course_session=course_session,
|
||||
learning_content=course,
|
||||
location="Handelsschule KV Bern, Zimmer 123, Eigerstrasse 16, 3012 Bern",
|
||||
trainer="Roland Grossenbacher, roland.grossenbacher@helvetia.ch",
|
||||
)
|
||||
random_week = random.randint(1, 26)
|
||||
|
||||
casc.due_date.start = timezone.make_aware(
|
||||
datetime(2023, 6, 14, 8, 30) + timedelta(weeks=random_week)
|
||||
)
|
||||
casc.due_date.end = timezone.make_aware(
|
||||
datetime(2023, 6, 14, 17, 0) + timedelta(weeks=random_week)
|
||||
)
|
||||
casc.due_date.save()
|
||||
return casc
|
||||
|
||||
|
||||
def create_test_course_with_categories(apps=None, schema_editor=None):
|
||||
if apps is not None:
|
||||
Course = apps.get_model("course", "Course")
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import random
|
|||
from datetime import datetime, timedelta
|
||||
|
||||
import djclick as click
|
||||
from dateutil.relativedelta import relativedelta, TH, TU
|
||||
from django.utils import timezone
|
||||
|
||||
from vbv_lernwelt.assignment.creators.create_assignments import (
|
||||
|
|
@ -245,13 +246,6 @@ def create_course_uk_de():
|
|||
title="Bern 2023 a",
|
||||
)
|
||||
|
||||
for i, cs in enumerate(CourseSession.objects.filter(course_id=COURSE_UK_TRAINING)):
|
||||
create_course_session_assignments(
|
||||
cs,
|
||||
f"{course.slug}-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice",
|
||||
i=i,
|
||||
)
|
||||
|
||||
csac = CourseSessionAttendanceCourse.objects.create(
|
||||
course_session=cs,
|
||||
learning_content=LearningContentAttendanceCourse.objects.get(
|
||||
|
|
@ -260,17 +254,37 @@ def create_course_uk_de():
|
|||
location="Handelsschule KV Bern, Zimmer 123, Eigerstrasse 16, 3012 Bern",
|
||||
trainer="Roland Grossenbacher, roland.grossenbacher@helvetia.ch",
|
||||
)
|
||||
|
||||
# TODO: create dates schlauer
|
||||
random_week = random.randint(1, 26)
|
||||
tuesday_in_two_weeks = (
|
||||
datetime.now() + relativedelta(weekday=TU(2)) + relativedelta(weeks=2)
|
||||
)
|
||||
csac.due_date.start = timezone.make_aware(
|
||||
datetime(2023, 6, 14, 8, 30) + timedelta(weeks=random_week)
|
||||
tuesday_in_two_weeks.replace(hour=8, minute=30, second=0, microsecond=0)
|
||||
)
|
||||
csac.due_date.end = timezone.make_aware(
|
||||
datetime(2023, 6, 14, 17, 0) + timedelta(weeks=random_week)
|
||||
tuesday_in_two_weeks.replace(hour=17, minute=0, second=0, microsecond=0)
|
||||
)
|
||||
csac.due_date.save()
|
||||
|
||||
csa = CourseSessionAssignment.objects.create(
|
||||
course_session=cs,
|
||||
learning_content=LearningContentAssignment.objects.get(
|
||||
slug=f"{course.slug}-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice"
|
||||
),
|
||||
)
|
||||
next_thursday = datetime.now() + relativedelta(weekday=TH(2))
|
||||
csa.submission_deadline.start = timezone.make_aware(
|
||||
(next_thursday + relativedelta(weeks=3)).replace(
|
||||
hour=23, minute=59, second=59, microsecond=0
|
||||
)
|
||||
)
|
||||
csa.submission_deadline.save()
|
||||
csa.evaluation_deadline.start = timezone.make_aware(
|
||||
(next_thursday + relativedelta(weeks=5)).replace(
|
||||
hour=23, minute=59, second=59, microsecond=0
|
||||
)
|
||||
)
|
||||
csa.evaluation_deadline.save()
|
||||
|
||||
# figma demo users and data
|
||||
csu = CourseSessionUser.objects.create(
|
||||
course_session=cs,
|
||||
|
|
@ -587,6 +601,7 @@ def create_course_session_assignments(course_session, assignment_slug, i=1):
|
|||
if course_session.start_date is None:
|
||||
course_session.start_date = datetime.now() + timedelta(days=i * 12)
|
||||
course_session.save()
|
||||
|
||||
submission_deadline = csa.submission_deadline
|
||||
if submission_deadline:
|
||||
submission_deadline.start = course_session.start_date + timedelta(days=14)
|
||||
|
|
|
|||
|
|
@ -6,9 +6,8 @@ from django.db import migrations
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('course', '0006_auto_20230626_1724'),
|
||||
('course', '0006_remove_coursesession_assignment_details_list'),
|
||||
("course", "0006_auto_20230626_1724"),
|
||||
("course", "0006_remove_coursesession_assignment_details_list"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
]
|
||||
operations = []
|
||||
|
|
|
|||
|
|
@ -6,9 +6,8 @@ from django.db import migrations
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('course_session', '0002_coursesessionattendancecourse_attendance_user_list'),
|
||||
('course_session', '0003_auto_20230628_1321'),
|
||||
("course_session", "0002_coursesessionattendancecourse_attendance_user_list"),
|
||||
("course_session", "0003_auto_20230628_1321"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
]
|
||||
operations = []
|
||||
|
|
|
|||
|
|
@ -6,9 +6,8 @@ from django.db import migrations
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('learnpath', '0008_alter_learningcontentassignment_content_assignment'),
|
||||
('learnpath', '0009_alter_learningcontentassignment_content_assignment'),
|
||||
("learnpath", "0008_alter_learningcontentassignment_content_assignment"),
|
||||
("learnpath", "0009_alter_learningcontentassignment_content_assignment"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
]
|
||||
operations = []
|
||||
|
|
|
|||
Loading…
Reference in New Issue