Reviewers: ,


Please review this at http://codereview.tryton.org/231006/

Affected files:
  M trytond/protocols/jsonrpc.py
  M trytond/protocols/xmlrpc.py


Index: trytond/protocols/jsonrpc.py
===================================================================

--- a/trytond/protocols/jsonrpc.py
+++ b/trytond/protocols/jsonrpc.py
@@ -36,6 +36,8 @@
                     dct['hour'], dct['minute'], dct['second'])
         elif dct['__class__'] == 'date':
             return datetime.date(dct['year'], dct['month'], dct['day'])
+        elif dct['__class__'] == 'time':
+            return datetime.time(dct['hour'], dct['minute'], dct['second'])
         elif dct['__class__'] == 'buffer':
             return buffer(base64.decodestring(dct['base64']))
         elif dct['__class__'] == 'Decimal':
@@ -65,6 +67,12 @@
                     'month': obj.month,
                     'day': obj.day,
                     }
+        elif isinstance(obj, datetime.time):
+            return {'__class__': 'time',
+                'hour': obj.hour,
+                'minute': obj.minute,
+                'second': obj.second,
+                }
         elif isinstance(obj, buffer):
             return {'__class__': 'buffer',
                 'base64': base64.encodestring(obj),

Index: trytond/protocols/xmlrpc.py
===================================================================

--- a/trytond/protocols/xmlrpc.py
+++ b/trytond/protocols/xmlrpc.py
@@ -40,10 +40,18 @@
         }
     self.dump_struct(value, write)

+def dump_time(self, value, write):
+    value = {'__class__': 'time',
+        'hour': value.hour,
+        'minute': value.minute,
+        'second': value.second,
+        }
+
 xmlrpclib.Marshaller.dispatch[Decimal] = dump_decimal
 xmlrpclib.Marshaller.dispatch[type(None)] = \
         lambda self, value, write: self.dump_bool(bool(value), write)
 xmlrpclib.Marshaller.dispatch[datetime.date] = dump_date
+xmlrpclib.Marshaller.dispatch[datetime.time] = dump_time
 xmlrpclib.Marshaller.dispatch[buffer] = dump_buffer

 def dump_struct(self, value, write, escape=xmlrpclib.escape):
@@ -68,6 +76,8 @@
     if '__class__' in dct:
         if dct['__class__'] == 'date':
             dct = datetime.date(dct['year'], dct['month'], dct['day'])
+        elif dct['__class__'] == 'time':
+            dct = datetime.time(dct['hour'], dct['minute'], dct['second'])
         elif dct['__class__'] == 'Decimal':
             dct = Decimal(dct['decimal'])
     self._stack[mark:] = [dct]



--
[email protected] mailing list

Reply via email to