Coverage for gws-app/gws/plugin/model_field/integer/__init__.py: 90%

21 statements  

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

1"""Integer field. 

2 

3A scalar field for integer numbers. Values from the client are converted 

4with ``int()``. Without a configured widget, the field uses an ``integer`` 

5widget. 

6 

7Example:: 

8 

9 fields+ { name "id" type "integer" isPrimaryKey true } 

10""" 

11 

12import gws 

13import gws.base.model.scalar_field 

14from gws import User 

15 

16 

17@gws.ext.config.modelField('integer') 

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

19 """Field for integer numbers.""" 

20 

21 pass 

22 

23 

24@gws.ext.props.modelField('integer') 

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

26 pass 

27 

28 

29@gws.ext.object.modelField('integer') 

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

31 """Integer field object.""" 

32 

33 attributeType = gws.AttributeType.int 

34 

35 def configure_widget(self): 

36 if not super().configure_widget(): 

37 self.widget = self.root.create_shared(gws.ext.object.modelWidget, type='integer') 

38 return True 

39 

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

41 try: 

42 return int(value) 

43 except ValueError: 

44 return gws.ErrorValue