diff --git a/modules/plugin_dbui/directsvc.py b/modules/plugin_dbui/directsvc.py index 2657946f123af5b427c3ebb224d828e2444df6b9..98d765d21ce26869d53bc82d82061e08c1dd00f7 100644 --- a/modules/plugin_dbui/directsvc.py +++ b/modules/plugin_dbui/directsvc.py @@ -4,13 +4,13 @@ __version__ = "$Revision$" - +import datetime +import json import pprint import traceback import sys from basesvc import BaseSvc -from gluon.contrib import simplejson as json from gluon.http import HTTP from helper import as_list @@ -18,6 +18,21 @@ DBUI = 'Dbui' PROC_KEY = '%s.%s' +class MyJsonEncoder(json.JSONEncoder): + """Add date, datetime and time to the standard encoder. + + """ + def default(self, obj): + + if isinstance(obj, (datetime.date, + datetime.datetime, + datetime.time)): + return obj.isoformat().replace('T', ' ') + + return json.JSONEncoder.default(self, obj) + + + class DirectSvc(BaseSvc): """Generic service to implement the Ext.Direct protocol on the server side Specification: http://www.sencha.com/products/extjs/extdirect/ @@ -126,6 +141,6 @@ class DirectSvc(BaseSvc): li.append(di) self.dbg('End directSvc.call', li) - return json.dumps(li) + return json.dumps(li, cls=MyJsonEncoder) \ No newline at end of file