Coverage for gws-app/gws/plugin/model_widget/toggle/__init__.py: 92%

12 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-05 13:35 +0200

1"""Toggle input widget. 

2 

3Checkbox or radio button for boolean values. This is the default widget of 

4``bool`` fields. 

5 

6Example:: 

7 

8 fields+ { 

9 name "is_active" 

10 type "bool" 

11 widget { type "toggle" kind "checkbox" } 

12 } 

13""" 

14 

15import gws 

16import gws.base.model.widget 

17 

18 

19@gws.ext.config.modelWidget('toggle') 

20class Config(gws.base.model.widget.Config): 

21 """Checkbox or radio button for boolean values.""" 

22 

23 kind: str = 'checkbox' 

24 """Toggle kind: checkbox or radio.""" 

25 

26 

27@gws.ext.props.modelWidget('toggle') 

28class Props(gws.base.model.widget.Props): 

29 kind: str 

30 

31 

32@gws.ext.object.modelWidget('toggle') 

33class Object(gws.base.model.widget.Object): 

34 """Toggle input widget object.""" 

35 

36 def props(self, user): 

37 return gws.u.merge( 

38 super().props(user), 

39 kind=self.cfg('kind', default='checkbox'), 

40 )