File: forms.py

package info (click to toggle)
freedombox 26.2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 82,976 kB
  • sloc: python: 48,504; javascript: 1,736; xml: 481; makefile: 290; sh: 167; php: 32
file content (44 lines) | stat: -rw-r--r-- 1,861 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# SPDX-License-Identifier: AGPL-3.0-or-later
"""Nextcloud configuration form."""

from django import forms
from django.utils.translation import gettext_lazy as _


def _get_phone_regions():
    """Return choice field choices for phone regions."""
    try:
        from iso3166 import countries  # type: ignore
        phone_regions = [(country.alpha2, country.name)
                         for country in countries]
        phone_regions = sorted(phone_regions)
    except ImportError:
        # Allow users to set a non-empty value
        phone_regions = [('US', 'United States of America')]

    return [('', _('Not set'))] + phone_regions


class NextcloudForm(forms.Form):
    """Nextcloud configuration form."""

    override_domain = forms.CharField(
        label=_('Override domain'), required=False, help_text=_(
            'Set to the domain or IP address that Nextcloud should be forced '
            'to generate URLs with. Should not be needed if a valid domain is '
            'used to access Nextcloud. Examples: "myfreedombox.example.org" '
            'or "example.onion".'))

    admin_password = forms.CharField(
        label=_('Administrator password'), help_text=_(
            'Optional. Set a new password for Nextcloud\'s administrator '
            'account (nextcloud-admin). The password cannot be a common one '
            'and the minimum required length is <strong>10 characters'
            '</strong>. Leave this field blank to keep the current password.'),
        required=False, widget=forms.PasswordInput, min_length=10)

    default_phone_region = forms.ChoiceField(
        label=_('Default phone region'), required=False,
        help_text=_('The default phone region is required to validate phone '
                    'numbers in the profile settings without a country code.'),
        choices=_get_phone_regions)