Coverage for gws-app/gws/plugin/model_widget/integer/__init__.py: 100%

14 statements  

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

1"""Integer input widget. 

2 

3Input for whole numbers, with up/down buttons and an optional placeholder 

4text. This is the default widget of ``integer`` fields. 

5 

6Example:: 

7 

8 fields+ { 

9 name "floors" 

10 type "integer" 

11 widget { type "integer" step 1 placeholder "Number of floors" } 

12 } 

13""" 

14 

15import gws 

16import gws.base.model.widget 

17 

18 

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

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

21 """Input for whole numbers.""" 

22 

23 step: int = 1 

24 """Increment of the up/down buttons.""" 

25 placeholder: str = '' 

26 """Hint text shown in the empty input.""" 

27 

28 

29@gws.ext.props.modelWidget('integer') 

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

31 step: int 

32 placeholder: str 

33 

34 

35@gws.ext.object.modelWidget('integer') 

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

37 """Integer input widget object.""" 

38 

39 def props(self, user): 

40 return gws.u.merge( 

41 super().props(user), 

42 placeholder=self.cfg('placeholder'), 

43 step=self.cfg('step'), 

44 )