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

1"""Boolean field. 

2 

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. 

6 

7Example:: 

8 

9 fields+ { name "is_active" type "bool" title "Active" } 

10""" 

11 

12import gws 

13import gws.base.model.scalar_field 

14 

15 

16@gws.ext.config.modelField('bool') 

17class Config(gws.base.model.scalar_field.Config): 

18 """Field for boolean values.""" 

19 

20 pass 

21 

22 

23@gws.ext.props.modelField('bool') 

24class Props(gws.base.model.scalar_field.Props): 

25 pass 

26 

27 

28@gws.ext.object.modelField('bool') 

29class Object(gws.base.model.scalar_field.Object): 

30 """Boolean field object.""" 

31 

32 attributeType = gws.AttributeType.bool 

33 

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 

38 

39 ## 

40 

41 def prop_to_python(self, feature, value, mc): 

42 try: 

43 return bool(value) 

44 except ValueError: 

45 return gws.ErrorValue