Total Complexity | 2 |
Total Lines | 46 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 0 |
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 |