Fix problems with slugs in moved ActionCompetences

This commit is contained in:
Daniel Egger 2023-09-15 09:47:17 +02:00
parent b5e9b9e355
commit 9eec62c31b
6 changed files with 13 additions and 7 deletions

View File

@ -25,7 +25,7 @@ onMounted(async () => {
await cockpitStore.loadCourseSessionUsers(courseSession.value.id);
cockpitStore.courseSessionUsers?.forEach((csu) => {
competenceStore.loadCompetenceProfilePage(
props.courseSlug + "-competence",
props.courseSlug + "-competencenavi-competences",
csu.user_id
);

View File

@ -34,7 +34,7 @@ onMounted(async () => {
log.debug("CompetenceParentPage mounted", props.courseSlug);
try {
const competencePageSlug = props.courseSlug + "-competence";
const competencePageSlug = props.courseSlug + "-competencenavi-competences";
await competenceStore.loadCompetenceProfilePage(competencePageSlug);
} catch (error) {
log.error(error);

View File

@ -108,6 +108,10 @@ def refactor_competence_wagtail_tree(apps=None, schema_editor=None):
learning_content_edoniq.content_assignment = edoniq_test
learning_content_edoniq.save()
for ac in ActionCompetenceListPage.objects.all():
# trigger slug update by saving
ac.save()
for competence in ActionCompetence.objects.all():
if competence.competence_id.endswith(":"):
# remove trailing colon

View File

@ -77,11 +77,11 @@ class ActionCompetenceListPage(CourseBasePage):
]
def get_frontend_url(self):
return f"/course/{self.slug.replace('-competence', '')}/competence"
return f"/course/{self.slug.replace('-competencenavi-competences', '')}/competence/competences"
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),
slugify(f"{self.get_parent().slug}-competences", allow_unicode=True),
ignore_page_id=self.id,
)
super(ActionCompetenceListPage, self).save(clean, user, log_action, **kwargs)

View File

@ -14,7 +14,7 @@ class CompetenceAPITestCase(APITestCase):
self.client.login(username="admin", password="test")
def test_get_compentence_page(self):
slug = "test-lehrgang-competence"
slug = "test-lehrgang-competencenavi-competence"
competence_profile = ActionCompetenceListPage.objects.get(slug=slug)
response = self.client.get(f"/api/course/page/{slug}/")

View File

@ -39,10 +39,12 @@ class Course(models.Model):
return self.get_learning_path().get_cockpit_url()
def get_competence_url(self):
from vbv_lernwelt.competence.models import CompetenceNaviPage
from vbv_lernwelt.competence.models import ActionCompetenceListPage
competence_page = (
self.coursepage.get_children().exact_type(CompetenceNaviPage).first()
self.coursepage.get_descendants()
.exact_type(ActionCompetenceListPage)
.first()
)
return competence_page.specific.get_frontend_url()