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
