mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-07-22 11:59:33 +00:00
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>
33 lines
996 B
Python
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
|