Passed
Push — master ( 9134a0...3216e3 )
by Jochen
02:55
created

UpdateForm.set_email_config_choices()   A

Complexity

Conditions 2

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
"""
2
byceps.blueprints.admin.site.forms
3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
5
:Copyright: 2006-2019 Jochen Kupperschmidt
6
:License: Modified BSD, see LICENSE for details.
7
"""
8
9
from wtforms import SelectField, StringField
10
from wtforms.validators import InputRequired, Length, Optional
11
12
from ....util.l10n import LocalizedForm
13
14
from ....services.email import service as email_service
15
from ....services.party import service as party_service
16
17
18
class UpdateForm(LocalizedForm):
19
    title = StringField('Titel', validators=[Length(min=1, max=20)])
20
    server_name = StringField('Servername', validators=[InputRequired()])
21
    email_config_id = SelectField('E-Mail-Konfiguration', validators=[InputRequired()])
22
    party_id = SelectField('Party-ID', validators=[Optional()])
23
24
    def set_email_config_choices(self):
25
        configs = email_service.get_all_configs()
26
        configs.sort(key=lambda config: config.id)
27
        self.email_config_id.choices = [(c.id, c.id) for c in configs]
28
29
    def set_party_choices(self):
30
        parties = party_service.get_all_parties()
31
        parties.sort(key=lambda party: party.id)
32
33
        choices = [(str(p.id), p.title) for p in parties]
34
        choices.insert(0, ('', '<keine>'))
35
        self.party_id.choices = choices
36
37
38
class CreateForm(UpdateForm):
39
    id = StringField('ID', validators=[Length(min=1, max=40)])
40