diff --git a/server/vbv_lernwelt/competence/models.py b/server/vbv_lernwelt/competence/models.py index fc69abd6..95622c4f 100644 --- a/server/vbv_lernwelt/competence/models.py +++ b/server/vbv_lernwelt/competence/models.py @@ -23,14 +23,14 @@ class CompetenceProfilePage(CourseBasePage): FieldPanel("title", classname="full title"), ] - def full_clean(self, *args, **kwargs): + def get_frontend_url(self): + return f"/course/{self.slug.replace('-competence', '')}/competence" + + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_available_slug( slugify(f"{self.get_parent().slug}-competence", allow_unicode=True) ) - super(CompetenceProfilePage, self).full_clean(*args, **kwargs) - - def get_frontend_url(self): - return f"/course/{self.slug.replace('-competence', '')}/competence" + super(CompetenceProfilePage, self).save(clean, user, log_action, **kwargs) class CompetencePage(CourseBasePage): @@ -54,14 +54,14 @@ class CompetencePage(CourseBasePage): FieldPanel("competence_id"), ] - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_available_slug( slugify( f"{self.get_parent().slug}-competence-{self.competence_id}", allow_unicode=True, ) ) - super(CompetencePage, self).full_clean(*args, **kwargs) + super(CompetencePage, self).save(clean, user, log_action, **kwargs) class PerformanceCriteria(CourseBasePage): @@ -80,7 +80,7 @@ class PerformanceCriteria(CourseBasePage): FieldPanel("learning_unit"), ] - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): profile_parent = self.get_ancestors().exact_type(CompetenceProfilePage).last() if self.learning_unit and self.learning_unit.course_category: self.slug = find_available_slug( @@ -96,7 +96,7 @@ class PerformanceCriteria(CourseBasePage): allow_unicode=True, ) ) - super(PerformanceCriteria, self).full_clean(*args, **kwargs) + super(PerformanceCriteria, self).save(clean, user, log_action, **kwargs) @classmethod def get_serializer_class(cls): diff --git a/server/vbv_lernwelt/course/models.py b/server/vbv_lernwelt/course/models.py index 2212a95e..6abf0e9d 100644 --- a/server/vbv_lernwelt/course/models.py +++ b/server/vbv_lernwelt/course/models.py @@ -127,9 +127,9 @@ class CoursePage(CourseBasePage): class Meta: verbose_name = _("Lehrgang-Seite") - def full_clean(self, *args, **kwargs): + def save(self, *args, **kwargs): self.slug = find_available_slug(slugify(self.title, allow_unicode=True)) - super(CoursePage, self).full_clean(*args, **kwargs) + super(CoursePage, self).save(*args, **kwargs) def __str__(self): return f"{self.title}" diff --git a/server/vbv_lernwelt/learnpath/models.py b/server/vbv_lernwelt/learnpath/models.py index 44d67520..7ed6dc51 100644 --- a/server/vbv_lernwelt/learnpath/models.py +++ b/server/vbv_lernwelt/learnpath/models.py @@ -35,11 +35,11 @@ class LearningPath(CourseBasePage): class Meta: verbose_name = "Learning Path" - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_available_slug( slugify(f"{self.get_parent().slug}-lp", allow_unicode=True) ) - super(LearningPath, self).full_clean(*args, **kwargs) + super(LearningPath, self).save(clean, user, log_action, **kwargs) def __str__(self): return f"{self.title}" @@ -60,9 +60,9 @@ class Topic(CourseBasePage): FieldPanel("is_visible"), ] - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_slug_with_parent_prefix(self, "topic") - super(Topic, self).full_clean(*args, **kwargs) + super(Topic, self).save(clean, user, log_action, **kwargs) def get_admin_display_title(self): return f"Thema: {self.draft_title}" @@ -104,9 +104,9 @@ class Circle(CourseBasePage): return "ERROR: could not parse slug" return f"/course/{m.group('coursePart')}/learn/{m.group('circlePart')}" - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_slug_with_parent_prefix(self, "circle") - super(Circle, self).full_clean(*args, **kwargs) + super(Circle, self).save(clean, user, log_action, **kwargs) class Meta: verbose_name = "Circle" @@ -146,9 +146,9 @@ class LearningSequence(CourseBasePage): def get_admin_display_title(self): return f"LS: {self.draft_title}" - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_slug_with_parent_prefix(self, "ls") - super(LearningSequence, self).full_clean(*args, **kwargs) + super(LearningSequence, self).save(clean, user, log_action, **kwargs) def get_frontend_url(self): r = re.compile( @@ -177,7 +177,7 @@ class LearningUnit(CourseBasePage): def __str__(self): return f"{self.title}" - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): course = None course_parent_page = self.get_ancestors().exact_type(CoursePage).last() if course_parent_page: @@ -194,7 +194,7 @@ class LearningUnit(CourseBasePage): self.slug = find_slug_with_parent_prefix( self, "lu", self.course_category.title ) - super(LearningUnit, self).full_clean(*args, **kwargs) + super(LearningUnit, self).save(clean, user, log_action, **kwargs) def get_frontend_url(self): r = re.compile( @@ -291,9 +291,9 @@ class LearningContent(CourseBasePage): return "ERROR: could not parse slug" return f"/course/{m.group('coursePart')}/learn/{m.group('circlePart')}/{m.group('lcPart')}" - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_slug_with_parent_prefix(self, "lc") - super(LearningContent, self).full_clean(*args, **kwargs) + super().save(**kwargs) def find_slug_with_parent_prefix(page, type_prefix, slug_postfix=None): diff --git a/server/vbv_lernwelt/media_library/models.py b/server/vbv_lernwelt/media_library/models.py index cd862a1a..763cde4d 100644 --- a/server/vbv_lernwelt/media_library/models.py +++ b/server/vbv_lernwelt/media_library/models.py @@ -23,11 +23,11 @@ class MediaLibraryPage(CourseBasePage): FieldPanel("title", classname="full title"), ] - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_available_slug( slugify(f"{self.get_parent().slug}-media", allow_unicode=True) ) - super(MediaLibraryPage, self).full_clean(*args, **kwargs) + super(MediaLibraryPage, self).save(clean, user, log_action, **kwargs) def get_frontend_url(self): return f"/media/{self.slug}" @@ -84,11 +84,11 @@ class MediaCategoryPage(CourseBasePage): StreamFieldPanel("body"), ] - def full_clean(self, *args, **kwargs): + def save(self, clean=True, user=None, log_action=False, **kwargs): self.slug = find_available_slug( slugify(f"{self.get_parent().slug}-cat-{self.title}", allow_unicode=True) ) - super(MediaCategoryPage, self).full_clean(*args, **kwargs) + super(MediaCategoryPage, self).save(clean, user, log_action, **kwargs) def get_frontend_url(self): r = re.compile(r"^(?P.+?)-media-cat-(?P.+)$")