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
|
|
|
|