示例#1
0
    def clean(self):
        """
        Validates that either the slug is provided, or that slugification from
        `title` produces a valid slug.
        :return:
        """
        cleaned_data = super(CreateCMSPageForm, self).clean()

        slug = cleaned_data.get("slug")
        sub_page = cleaned_data.get("sub_page")
        title = cleaned_data.get("title")

        if self.page:
            if sub_page:
                parent = self.page
            else:
                parent = self.page.parent
        else:
            parent = None

        if slug:
            starting_point = slug
        elif title:
            starting_point = title
        else:
            starting_point = _("page")
        slug = generate_valid_slug(starting_point, parent, self.language_code)
        if not slug:
            raise forms.ValidationError("Please provide a valid slug.")
        cleaned_data["slug"] = slug
        return cleaned_data
示例#2
0
 def test_generage_valid_slug_check_parent(self):
     title = "Hello Title"
     page = create_page(title, 'nav_playground.html', 'en')
     # second time with same title, it should append -1
     expected_slug = "hello-title"
     slug = generate_valid_slug(title, page, 'en')
     self.assertEqual(slug, expected_slug)
示例#3
0
    def clean(self):
        """
        Validates that either the slug is provided, or that slugification from
        `title` produces a valid slug.
        :return:
        """
        cleaned_data = super(CreateCMSPageForm, self).clean()

        slug = cleaned_data.get("slug")
        sub_page = cleaned_data.get("sub_page")
        title = cleaned_data.get("title")

        if self.page:
            if sub_page:
                parent = self.page
            else:
                parent = self.page.parent
        else:
            parent = None

        if slug:
            starting_point = slug
        elif title:
            starting_point = title
        else:
            starting_point = _("page")
        slug = generate_valid_slug(starting_point, parent, self.language_code)
        if not slug:
            raise forms.ValidationError("Please provide a valid slug.")
        cleaned_data["slug"] = slug
        return cleaned_data
示例#4
0
 def test_generate_valid_slug(self):
     title = "Hello Title"
     expected_slug = "hello-title"
     # empty db, it should just slugify
     slug = generate_valid_slug(title, None, 'en')
     self.assertEqual(slug, expected_slug)