def clean(self): cleaned_data = super().clean() if self.errors: return cleaned_data language = self.page_content.language slug = cleaned_data["slug"] if self.page_content.page.node.parent: parent_path = self.page_content.page.node.parent.item.get_path(language) path = "%s/%s" % (parent_path, slug) if parent_path else slug else: path = cleaned_data["slug"] try: validate_url_uniqueness( cleaned_data["site"], path=path, language=language, user_language=language, ) except forms.ValidationError as e: self.add_error("slug", e) else: cleaned_data["path"] = path return cleaned_data
def clean(self): data = self.cleaned_data if self._errors: # Form already has errors, best to let those be # addressed first. return data parent_node = data.get('parent_node') if parent_node: slug = data['slug'] parent_path = parent_node.item.get_path(self._language) path = u'%s/%s' % (parent_path, slug) if parent_path else slug else: path = data['slug'] try: # Validate the url validate_url_uniqueness( self._site, path=path, language=self._language, ) except ValidationError as error: self.add_error('slug', error) else: data['path'] = path return data
def clean_overwrite_url(self): path_override = self.cleaned_data.get('overwrite_url') if path_override: path = path_override.strip('/') else: path = self.instance.get_path_for_slug(self.title_obj.slug, self._language) validate_url_uniqueness( self._site, path=path, language=self._language, exclude_page=self.instance, ) self.cleaned_data['path'] = path return path_override
def clean(self): data = super().clean() if self._errors: # Form already has errors, best to let those be # addressed first. return data page = self.instance if page.is_home: data['path'] = '' return data if self.title_obj.has_url_overwrite: data['path'] = self.title_obj.path return data if 'slug' not in self.fields: # the {% edit_title_fields %} template tag # allows users to edit specific fields for a translation. # as a result, slug might not always be there. return data if page.parent_page: slug = data['slug'] parent_path = page.parent_page.get_path(self._language) path = u'%s/%s' % (parent_path, slug) if parent_path else slug else: path = data['slug'] try: # Validate the url validate_url_uniqueness( self._site, path=path, language=self._language, exclude_page=page, ) except ValidationError as error: self.add_error('slug', error) else: data['path'] = path return data