1
1
from yafowil .base import factory
2
-
3
-
4
- def bs_field_class (widget , data ):
5
- if data .errors :
6
- return "form-group has-error"
7
- return "form-group"
2
+ from yafowil .utils import attr_value
8
3
9
4
10
5
def configure_factory ():
11
6
# set theme
12
7
factory .theme = "bootstrap4"
13
8
14
- # common defaults
15
- factory .defaults ["text.class" ] = "text form-control"
16
-
17
- factory .defaults ["textarea.class" ] = "textarea form-control"
9
+ # wrapper div for one input
10
+ factory .defaults ["field.class" ] = "form-group"
18
11
19
- factory .defaults ["lines.class" ] = "lines form-control"
12
+ # label required marker (plone)
13
+ factory .defaults ["label.required_class" ] = "required"
20
14
21
- factory .defaults ["password.class" ] = "password form-control"
15
+ # common defaults
16
+ # form-control:
17
+ # errors: https://getbootstrap.com/docs/4.4/components/forms/#how-it-works
18
+ bs4_input_blueprints = [
19
+ "text" , "textarea" , "lines" , "password" , "select" , "email" , "url" , "search"
20
+ ]
21
+ for blueprint_name in bs4_input_blueprints :
22
+ factory .defaults ["{0}.class" .format (blueprint_name )] = "form-control"
23
+ factory .defaults ["{0}.error_class" .format (blueprint_name )] = "is-invalid"
24
+ factory .defaults ["{0}.valid_class" .format (blueprint_name )] = "is-valid"
22
25
23
26
factory .defaults ["select.class" ] = "select"
24
27
factory .defaults ["select.block_class" ] = "form-control"
@@ -28,22 +31,11 @@ def configure_factory():
28
31
factory .defaults ["submit.class" ] = "btn btn-primary"
29
32
factory .defaults ["button.class" ] = "btn btn-primary"
30
33
31
- factory .defaults ["email.class" ] = "email form-control"
32
-
33
- factory .defaults ["url.class" ] = "url form-control"
34
-
35
- factory .defaults ["search.class" ] = "search form-control"
36
-
37
- factory .defaults ["number.class" ] = "number form-control"
38
-
39
- factory .defaults ["label.class" ] = "col-form-label"
40
-
41
- factory .defaults ["field.class" ] = bs_field_class
42
-
43
34
factory .defaults ["error.position" ] = "after"
44
- factory .defaults ["error.tag" ] = "span"
45
- factory .defaults ["error.class" ] = "help-block"
46
- factory .defaults ["error.message_class" ] = "text-danger"
35
+ factory .defaults ["error.tag" ] = "div"
36
+ factory .defaults ["error.class" ] = "invalid-feedback"
37
+ factory .defaults ["error.message_class" ] = None
38
+ factory .defaults ['error.message_tag' ] = None
47
39
48
40
factory .defaults ["help.position" ] = "after"
49
41
factory .defaults ["help.tag" ] = "small"
0 commit comments