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

Complexity

Total Complexity 2

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 24
dl 0
loc 46
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A BoardCreateForm.validate_board_id() 0 8 2
1
"""
2
byceps.blueprints.admin.board.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 StringField
11 1
from wtforms.validators import InputRequired, Length, ValidationError
12
13 1
from byceps.services.board import board_service
14
from byceps.util.l10n import LocalizedForm
15
16 1
17 1
class BoardCreateForm(LocalizedForm):
18
    board_id = StringField(
19
        lazy_gettext('ID'), validators=[InputRequired(), Length(min=1, max=40)]
20
    )
21
22 1
    @staticmethod
23 1
    def validate_board_id(form, field):
24 1
        board_id = field.data.strip()
25
26
        if board_service.find_board(board_id):
27 1
            raise ValidationError(
28
                lazy_gettext(
29
                    'This value is not available. Please choose another.'
30
                )
31
            )
32 1
33 1
34
class CategoryCreateForm(LocalizedForm):
35
    slug = StringField(lazy_gettext('Slug'), [InputRequired(), Length(max=40)])
36
    title = StringField(
37
        lazy_gettext('Title'), [InputRequired(), Length(max=40)]
38
    )
39
    description = StringField(
40
        lazy_gettext('Text'), [InputRequired(), Length(max=80)]
41
    )
42
43
44
class CategoryUpdateForm(CategoryCreateForm):
45
    pass
46