mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
Tests: - Creating/renaming/uploading wikis with names index[.html] does not work. Doing so with other names work. Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net> [sunil: Use validators= property instead of clean_name()] Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
"""Django forms for configuring TiddlyWiki."""
|
|
|
|
from django import forms
|
|
from django.core import validators
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
def _validate_not_index_file(name):
|
|
"""Validate that the normalized file name is not 'index.html'."""
|
|
if str(name) in ('index.html', 'index'):
|
|
raise forms.ValidationError(
|
|
_('Wiki files cannot be named "index.html".'))
|
|
|
|
|
|
class CreateWikiForm(forms.Form):
|
|
"""Form to create a new wiki file."""
|
|
|
|
name = forms.CharField(
|
|
label=_('Name of the wiki file, with file extension ".html"'),
|
|
strip=True, validators=[_validate_not_index_file], help_text=_(
|
|
'Wiki title and description can be set from within the wiki. '
|
|
'This file name is independent of the wiki title.'))
|
|
|
|
|
|
class RenameWikiForm(forms.Form):
|
|
"""Form to rename a wiki file."""
|
|
|
|
new_name = forms.CharField(
|
|
label=_('New name for the wiki file, with file extension ".html"'),
|
|
strip=True, validators=[_validate_not_index_file], help_text=_(
|
|
'Renaming the file has no effect on the title of the wiki.'))
|
|
|
|
|
|
class UploadWikiForm(forms.Form):
|
|
"""Form to upload a wiki file."""
|
|
|
|
file = forms.FileField(
|
|
label=_('A TiddlyWiki file with .html file extension'), required=True,
|
|
validators=[
|
|
validators.FileExtensionValidator(
|
|
['html'],
|
|
_('TiddlyWiki files must be in HTML format'),
|
|
), _validate_not_index_file
|
|
],
|
|
help_text=_('Upload an existing TiddlyWiki file from this computer.'))
|