Improve test data generation

This commit is contained in:
Lorenz Padberg 2023-07-03 21:53:07 +02:00
parent 57143a0209
commit 4fd10db935
7 changed files with 58 additions and 19 deletions

View File

@ -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 (
AssignmentListPage,
AssignmentType,
@ -20,9 +24,6 @@ from vbv_lernwelt.course.consts import (
COURSE_VERSICHERUNGSVERMITTLERIN_ID,
)
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):

View File

@ -1,5 +1,6 @@
import json
from datetime import datetime
import random
from datetime import datetime, timedelta
import wagtail_factories
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",
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.end = timezone.make_aware(datetime(2023, 6, 14, 17, 0))
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

View File

@ -74,7 +74,6 @@ from vbv_lernwelt.course_session.models import (
CourseSessionAssignment,
CourseSessionAttendanceCourse,
)
from vbv_lernwelt.duedate.models import DueDate
from vbv_lernwelt.feedback.creators.create_demo_feedback import create_feedback
from vbv_lernwelt.importer.services import (
import_course_sessions_from_excel,
@ -258,14 +257,14 @@ def create_course_uk_de():
learning_content=LearningContentAttendanceCourse.objects.get(
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",
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()
# figma demo users and data

View File

@ -42,7 +42,7 @@ class CourseSessionAttendanceCourse(models.Model):
self.due_date = DueDate.objects.create(
url=url,
title=f"{title}",
learning_content_description=f"{_('Präsenztag')}",
learning_content_description=f"{_('Präsenzkurs')}",
description="",
course_session=self.course_session,
page=page,

View File

@ -12,7 +12,7 @@ from vbv_lernwelt.learnpath.models import (
@admin.register(DueDate)
class DueDateAdmin(admin.ModelAdmin):
date_hierarchy = "end"
list_display = ["title", "course_session", "start", "end", "unset"]
list_display = ["title", "course_session", "start", "end", "is_undefined"]
list_filter = ["course_session"]
readonly_fields = ["course_session", "page"]

View File

@ -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),
),
]

View File

@ -12,17 +12,17 @@ from vbv_lernwelt.course.models import CourseSession
class DueDate(models.Model):
start = models.DateTimeField(null=True, db_index=True)
end = models.DateTimeField(db_index=True, null=True)
# TODO: Welcher Default Wert ist hier sinnvoll?
title = models.CharField(default=_("Termin"), max_length=1024)
learning_content_description = models.CharField(
default=_("GeleiteteFallarbeit"), max_length=1024
default="", max_length=1024
)
description = models.CharField(default=_("Abgabetermin"), max_length=1024)
url = models.URLField(null=True, blank=True, max_length=1024)
description = models.CharField(default="", max_length=1024)
url = models.URLField(default="", blank=True, max_length=1024)
course_session = models.ForeignKey(
"course.CourseSession",
on_delete=models.CASCADE,
related_name="duedates",
null=True,
blank=True,
)
@ -31,6 +31,7 @@ class DueDate(models.Model):
def Meta(self):
ordering = ["start", "end"]
verbose_name = _("Termin")
help = "Set only the end date if you want to create a deadline without a duration."
def __str__(self):
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}"
@property
def unset(self):
def is_undefined(self):
return self.end is None
@property