Coverage for gws-app/gws/plugin/model_field/date/__init__.py: 0%

19 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1"""Date field. 

2 

3Internally, ``date`` values are ``datetime`` objects. 

4They are always transferred in the ISO format, 

5specific locale conversions are left to the client. 

6""" 

7 

8import gws 

9import gws.base.model.scalar_field 

10import gws.lib.datetimex 

11 

12gws.ext.new.modelField('date') 

13 

14 

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

16 pass 

17 

18 

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

20 pass 

21 

22 

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

24 attributeType = gws.AttributeType.date 

25 

26 def configure_widget(self): 

27 if not super().configure_widget(): 

28 self.widget = self.root.create_shared(gws.ext.object.modelWidget, type='date') 

29 return True 

30 

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

32 d = gws.lib.datetimex.parse(value) 

33 return d or gws.ErrorValue 

34 

35 def python_to_prop(self, feature, value, mc): 

36 return gws.lib.datetimex.to_iso_date_string(value)