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
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Integer field.
3A scalar field for integer numbers. Values from the client are converted
4with ``int()``. Without a configured widget, the field uses an ``integer``
5widget.
7Example::
9 fields+ { name "id" type "integer" isPrimaryKey true }
10"""
12import gws
13import gws.base.model.scalar_field
14from gws import User
17@gws.ext.config.modelField('integer')
18class Config(gws.base.model.scalar_field.Config):
19 """Field for integer numbers."""
21 pass
24@gws.ext.props.modelField('integer')
25class Props(gws.base.model.scalar_field.Props):
26 pass
29@gws.ext.object.modelField('integer')
30class Object(gws.base.model.scalar_field.Object):
31 """Integer field object."""
33 attributeType = gws.AttributeType.int
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
40 def prop_to_python(self, feature, value, mc):
41 try:
42 return int(value)
43 except ValueError:
44 return gws.ErrorValue