Benedek Nagy 4ac789efd3
calibre: explain correct name format for new library
Closes: #2186.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
[jvalleroy: Remove duplicate import]
[jvalleroy: Reword help text slightly]
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2022-03-27 10:19:30 -04:00

33 lines
996 B
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Django form for configuring calibre.
"""
from django import forms
from django.core import validators
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
from plinth.modules import calibre
class CreateLibraryForm(forms.Form):
"""Form to create an empty library."""
name = forms.CharField(
label=_('Name of the new library'), strip=True,
help_text=_('Only letters of the English alphabet and numbers, '
'without spaces or special characters. Example: '
'My_Library_2000'),
validators=[validators.RegexValidator(r'^[A-Za-z0-9_.-]+$')])
def clean_name(self):
"""Check if the library name is valid."""
name = self.cleaned_data['name']
if name in calibre.list_libraries():
raise ValidationError(
_('A library with this name already exists.'))
return name