from django.db import models from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ from wagtail.models import Page from vbv_lernwelt.core.model_utils import find_available_slug class Course(models.Model): name = models.CharField(_('Titel'), max_length=255) category_name = models.CharField(_('Kategorie-Name'), max_length=255, default='Kategorie') class Meta: verbose_name = _("Lerngang") class CourseCategory(models.Model): # Die Handlungsfelder im "Versicherungsvermittler/in" name = models.CharField(_('Titel'), max_length=255, blank=True) course = models.ForeignKey('course.Course', on_delete=models.CASCADE) general = models.BooleanField(_('Allgemein'), default=False) class CoursePage(Page): content_panels = Page.content_panels subpage_types = ['learnpath.LearningPath', 'media_library.MediaLibrary'] course = models.ForeignKey('course.Course', on_delete=models.CASCADE) class Meta: verbose_name = _("Lerngang-Seite") def full_clean(self, *args, **kwargs): self.slug = find_available_slug(slugify(self.title, allow_unicode=True)) super(CoursePage, self).full_clean(*args, **kwargs) def __str__(self): return f"{self.title}"