Coverage for gws-app/gws/plugin/model_field/bool/__init__.py: 80%
20 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Boolean field.
3A scalar field for ``True``/``False`` values. Values from the client are
4converted with ``bool()``. Without a configured widget, the field uses a
5``toggle`` widget.
7Example::
9 fields+ { name "is_active" type "bool" title "Active" }
10"""
12import gws
13import gws.base.model.scalar_field
16@gws.ext.config.modelField('bool')
17class Config(gws.base.model.scalar_field.Config):
18 """Field for boolean values."""
20 pass
23@gws.ext.props.modelField('bool')
24class Props(gws.base.model.scalar_field.Props):
25 pass
28@gws.ext.object.modelField('bool')
29class Object(gws.base.model.scalar_field.Object):
30 """Boolean field object."""
32 attributeType = gws.AttributeType.bool
34 def configure_widget(self):
35 if not super().configure_widget():
36 self.widget = self.root.create_shared(gws.ext.object.modelWidget, type='toggle')
37 return True
39 ##
41 def prop_to_python(self, feature, value, mc):
42 try:
43 return bool(value)
44 except ValueError:
45 return gws.ErrorValue