Coverage for gws-app/gws/plugin/model_field/time/__init__.py: 84%

19 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-10-16 22:59 +0200

1"""Time field. 

2 

3Internally, ``time`` values are ``time`` 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('time') 

13 

14 

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

16 """Configuration for the time field.""" 

17 

18 pass 

19 

20 

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

22 pass 

23 

24 

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

26 attributeType = gws.AttributeType.datetime 

27 

28 def configure_widget(self): 

29 if not super().configure_widget(): 

30 # @TODO time widget 

31 self.widget = self.root.create_shared(gws.ext.object.modelWidget, type='input') 

32 return True 

33 

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

35 d = gws.lib.datetimex.parse_time(value) 

36 return d if d else gws.ErrorValue 

37 

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

39 return gws.lib.datetimex.time_to_iso_string(value)