VBV-234: Bugfix neue Seiten im Wagtail erstellen
Der `parent` einer Page ist erst in der `save` Funktion vorhanden für eine neue Seite. Deshalb muss man das Überschreiben der `slug` im `save` machen.
This commit is contained in:
parent
f2c6153343
commit
2c3b77b0d8
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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}"
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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<coursePart>.+?)-media-cat-(?P<catPart>.+)$")
|
||||
|
|
|
|||
Loading…
Reference in New Issue