Coverage for gws-app / gws / plugin / model_field / date / __init__.py: 84%
19 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-03 10:12 +0100
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-03 10:12 +0100
1"""Date field.
3Internally, ``date`` values are ``datetime`` objects.
4They are always transferred in the ISO format,
5specific locale conversions are left to the client.
6"""
8import gws
9import gws.base.model.scalar_field
10import gws.lib.datetimex
12gws.ext.new.modelField('date')
15class Config(gws.base.model.scalar_field.Config):
16 """Configuration for the date field."""
18 pass
21class Props(gws.base.model.scalar_field.Props):
22 pass
25class Object(gws.base.model.scalar_field.Object):
26 attributeType = gws.AttributeType.date
28 def configure_widget(self):
29 if not super().configure_widget():
30 self.widget = self.root.create_shared(gws.ext.object.modelWidget, type='date')
31 return True
33 def prop_to_python(self, feature, value, mc):
34 d = gws.lib.datetimex.parse(value)
35 return gws.lib.datetimex.dt.date(d.year, d.month, d.day) if d else gws.ErrorValue
37 def python_to_prop(self, feature, value, mc):
38 return gws.lib.datetimex.to_iso_date_string(value)