Coverage for gws-app/gws/plugin/model_field/datetime/__init__.py: 71%
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"""Datetime field.
3A scalar field for date and time values. Values from the client are parsed
4with ``gws.lib.datetimex.parse`` and stored as ``datetime`` objects. They are
5always sent to the client as ISO strings; locale-specific formatting is left
6to the client. Without a configured widget, the field uses an ``input`` widget.
8Example::
10 fields+ { name "updated_at" type "datetime" title "Last update" }
11"""
13import gws
14import gws.base.model.scalar_field
15import gws.lib.datetimex
18@gws.ext.config.modelField('datetime')
19class Config(gws.base.model.scalar_field.Config):
20 """Field for date and time values."""
22 pass
25@gws.ext.props.modelField('datetime')
26class Props(gws.base.model.scalar_field.Props):
27 pass
30@gws.ext.object.modelField('datetime')
31class Object(gws.base.model.scalar_field.Object):
32 """Datetime field object."""
34 attributeType = gws.AttributeType.datetime
36 def configure_widget(self):
37 if not super().configure_widget():
38 # @TODO datetime widget
39 self.widget = self.root.create_shared(gws.ext.object.modelWidget, type='input')
40 return True
42 def prop_to_python(self, feature, value, mc):
43 d = gws.lib.datetimex.parse(value)
44 return d or gws.ErrorValue
46 def python_to_prop(self, feature, value, mc):
47 return gws.lib.datetimex.to_iso_string(value)