Improve test data generation
This commit is contained in:
parent
57143a0209
commit
4fd10db935
|
|
@ -1,3 +1,7 @@
|
||||||
|
from wagtail.blocks import StreamValue
|
||||||
|
from wagtail.blocks.list_block import ListBlock, ListValue
|
||||||
|
from wagtail.rich_text import RichText
|
||||||
|
|
||||||
from vbv_lernwelt.assignment.models import (
|
from vbv_lernwelt.assignment.models import (
|
||||||
AssignmentListPage,
|
AssignmentListPage,
|
||||||
AssignmentType,
|
AssignmentType,
|
||||||
|
|
@ -20,9 +24,6 @@ from vbv_lernwelt.course.consts import (
|
||||||
COURSE_VERSICHERUNGSVERMITTLERIN_ID,
|
COURSE_VERSICHERUNGSVERMITTLERIN_ID,
|
||||||
)
|
)
|
||||||
from vbv_lernwelt.course.models import CoursePage
|
from vbv_lernwelt.course.models import CoursePage
|
||||||
from wagtail.blocks import StreamValue
|
|
||||||
from wagtail.blocks.list_block import ListBlock, ListValue
|
|
||||||
from wagtail.rich_text import RichText
|
|
||||||
|
|
||||||
|
|
||||||
def create_uk_fahrzeug_casework(course_id=COURSE_UK):
|
def create_uk_fahrzeug_casework(course_id=COURSE_UK):
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import json
|
import json
|
||||||
from datetime import datetime
|
import random
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
import wagtail_factories
|
import wagtail_factories
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
@ -177,9 +178,10 @@ def create_course_session_attendance_course(course_session, course):
|
||||||
location="Handelsschule KV Bern, Zimmer 123, Eigerstrasse 16, 3012 Bern",
|
location="Handelsschule KV Bern, Zimmer 123, Eigerstrasse 16, 3012 Bern",
|
||||||
trainer="Roland Grossenbacher, roland.grossenbacher@helvetia.ch",
|
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))
|
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))
|
casc.due_date.end = timezone.make_aware(datetime(2023, 6, 14, 17, 0) + timedelta(weeks=random_week))
|
||||||
casc.due_date.save()
|
casc.due_date.save()
|
||||||
return casc
|
return casc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,6 @@ from vbv_lernwelt.course_session.models import (
|
||||||
CourseSessionAssignment,
|
CourseSessionAssignment,
|
||||||
CourseSessionAttendanceCourse,
|
CourseSessionAttendanceCourse,
|
||||||
)
|
)
|
||||||
from vbv_lernwelt.duedate.models import DueDate
|
|
||||||
from vbv_lernwelt.feedback.creators.create_demo_feedback import create_feedback
|
from vbv_lernwelt.feedback.creators.create_demo_feedback import create_feedback
|
||||||
from vbv_lernwelt.importer.services import (
|
from vbv_lernwelt.importer.services import (
|
||||||
import_course_sessions_from_excel,
|
import_course_sessions_from_excel,
|
||||||
|
|
@ -258,14 +257,14 @@ def create_course_uk_de():
|
||||||
learning_content=LearningContentAttendanceCourse.objects.get(
|
learning_content=LearningContentAttendanceCourse.objects.get(
|
||||||
slug="überbetriebliche-kurse-lp-circle-fahrzeug-lc-präsenzkurs-fahrzeug"
|
slug="überbetriebliche-kurse-lp-circle-fahrzeug-lc-präsenzkurs-fahrzeug"
|
||||||
),
|
),
|
||||||
due_date=DueDate.objects.create(
|
|
||||||
course_session=cs,
|
|
||||||
),
|
|
||||||
location="Handelsschule KV Bern, Zimmer 123, Eigerstrasse 16, 3012 Bern",
|
location="Handelsschule KV Bern, Zimmer 123, Eigerstrasse 16, 3012 Bern",
|
||||||
trainer="Roland Grossenbacher, roland.grossenbacher@helvetia.ch",
|
trainer="Roland Grossenbacher, roland.grossenbacher@helvetia.ch",
|
||||||
)
|
)
|
||||||
csac.due_date.start = timezone.make_aware(datetime(2023, 6, 14, 8, 30))
|
|
||||||
csac.due_date.end = timezone.make_aware(datetime(2023, 6, 14, 17, 0))
|
# TODO: create dates schlauer
|
||||||
|
random_week = random.randint(1, 26)
|
||||||
|
csac.due_date.start = timezone.make_aware(datetime(2023, 6, 14, 8, 30) + timedelta(weeks=random_week))
|
||||||
|
csac.due_date.end = timezone.make_aware(datetime(2023, 6, 14, 17, 0) + timedelta(weeks=random_week))
|
||||||
csac.due_date.save()
|
csac.due_date.save()
|
||||||
|
|
||||||
# figma demo users and data
|
# figma demo users and data
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class CourseSessionAttendanceCourse(models.Model):
|
||||||
self.due_date = DueDate.objects.create(
|
self.due_date = DueDate.objects.create(
|
||||||
url=url,
|
url=url,
|
||||||
title=f"{title}",
|
title=f"{title}",
|
||||||
learning_content_description=f"{_('Präsenztag')}",
|
learning_content_description=f"{_('Präsenzkurs')}",
|
||||||
description="",
|
description="",
|
||||||
course_session=self.course_session,
|
course_session=self.course_session,
|
||||||
page=page,
|
page=page,
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ from vbv_lernwelt.learnpath.models import (
|
||||||
@admin.register(DueDate)
|
@admin.register(DueDate)
|
||||||
class DueDateAdmin(admin.ModelAdmin):
|
class DueDateAdmin(admin.ModelAdmin):
|
||||||
date_hierarchy = "end"
|
date_hierarchy = "end"
|
||||||
list_display = ["title", "course_session", "start", "end", "unset"]
|
list_display = ["title", "course_session", "start", "end", "is_undefined"]
|
||||||
list_filter = ["course_session"]
|
list_filter = ["course_session"]
|
||||||
readonly_fields = ["course_session", "page"]
|
readonly_fields = ["course_session", "page"]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
# Generated by Django 3.2.13 on 2023-07-03 15:41
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('course', '0006_remove_coursesession_assignment_details_list'),
|
||||||
|
('duedate', '0006_auto_20230627_1553'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='duedate',
|
||||||
|
name='course_session',
|
||||||
|
field=models.ForeignKey(blank=True, default=1, on_delete=django.db.models.deletion.CASCADE, related_name='duedates', to='course.coursesession'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='duedate',
|
||||||
|
name='description',
|
||||||
|
field=models.CharField(default='', max_length=1024),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='duedate',
|
||||||
|
name='learning_content_description',
|
||||||
|
field=models.CharField(default='', max_length=1024),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='duedate',
|
||||||
|
name='url',
|
||||||
|
field=models.URLField(blank=True, default='', max_length=1024),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -12,17 +12,17 @@ from vbv_lernwelt.course.models import CourseSession
|
||||||
class DueDate(models.Model):
|
class DueDate(models.Model):
|
||||||
start = models.DateTimeField(null=True, db_index=True)
|
start = models.DateTimeField(null=True, db_index=True)
|
||||||
end = models.DateTimeField(db_index=True, null=True)
|
end = models.DateTimeField(db_index=True, null=True)
|
||||||
|
# TODO: Welcher Default Wert ist hier sinnvoll?
|
||||||
title = models.CharField(default=_("Termin"), max_length=1024)
|
title = models.CharField(default=_("Termin"), max_length=1024)
|
||||||
learning_content_description = models.CharField(
|
learning_content_description = models.CharField(
|
||||||
default=_("GeleiteteFallarbeit"), max_length=1024
|
default="", max_length=1024
|
||||||
)
|
)
|
||||||
description = models.CharField(default=_("Abgabetermin"), max_length=1024)
|
description = models.CharField(default="", max_length=1024)
|
||||||
url = models.URLField(null=True, blank=True, max_length=1024)
|
url = models.URLField(default="", blank=True, max_length=1024)
|
||||||
course_session = models.ForeignKey(
|
course_session = models.ForeignKey(
|
||||||
"course.CourseSession",
|
"course.CourseSession",
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
related_name="duedates",
|
related_name="duedates",
|
||||||
null=True,
|
|
||||||
blank=True,
|
blank=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -31,6 +31,7 @@ class DueDate(models.Model):
|
||||||
def Meta(self):
|
def Meta(self):
|
||||||
ordering = ["start", "end"]
|
ordering = ["start", "end"]
|
||||||
verbose_name = _("Termin")
|
verbose_name = _("Termin")
|
||||||
|
help = "Set only the end date if you want to create a deadline without a duration."
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
start_str = self.start.strftime("%Y-%m-%d %H:%M") if self.start else ""
|
start_str = self.start.strftime("%Y-%m-%d %H:%M") if self.start else ""
|
||||||
|
|
@ -38,7 +39,7 @@ class DueDate(models.Model):
|
||||||
return f"DueDate: {self.title} {start_str} to {end_str}"
|
return f"DueDate: {self.title} {start_str} to {end_str}"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def unset(self):
|
def is_undefined(self):
|
||||||
return self.end is None
|
return self.end is None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue