byceps.blueprints.admin.brand.forms   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Test Coverage

Coverage 95.24%

Importance

Changes 0
Metric Value
eloc 29
dl 0
loc 52
ccs 20
cts 21
cp 0.9524
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A CreateForm.validate_id() 0 5 2
1
"""
2
byceps.blueprints.admin.brand.forms
3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
5
:Copyright: 2014-2024 Jochen Kupperschmidt
6
:License: Revised BSD (see `LICENSE` file for details)
7
"""
8
9 1
from flask_babel import lazy_gettext
10 1
from wtforms import BooleanField, StringField
11 1
from wtforms.validators import InputRequired, Length, Optional, ValidationError
12
13 1
from byceps.services.brand import brand_service
14 1
from byceps.util.l10n import LocalizedForm
15
16
17 1
class _BaseForm(LocalizedForm):
18 1
    title = StringField(
19
        lazy_gettext('Title'),
20
        validators=[InputRequired(), Length(min=1, max=40)],
21
    )
22
23
24 1
class CreateForm(_BaseForm):
25 1
    id = StringField(
26
        lazy_gettext('ID'), validators=[InputRequired(), Length(min=1, max=20)]
27
    )
28
29 1
    @staticmethod
30 1
    def validate_id(form, field):
31 1
        brand_id = field.data
32 1
        if brand_service.find_brand(brand_id) is not None:
33
            raise ValidationError(lazy_gettext('The value is already in use.'))
34
35
36 1
class UpdateForm(_BaseForm):
37 1
    image_filename = StringField(
38
        lazy_gettext('Image filename'), validators=[Optional()]
39
    )
40 1
    archived = BooleanField(lazy_gettext('archived'))
41
42
43 1
class EmailConfigUpdateForm(LocalizedForm):
44 1
    sender_address = StringField(
45
        lazy_gettext('Sender address'), validators=[InputRequired()]
46
    )
47 1
    sender_name = StringField(
48
        lazy_gettext('Sender name'), validators=[Optional()]
49
    )
50 1
    contact_address = StringField(
51
        lazy_gettext('Contact address'), validators=[Optional()]
52
    )
53