scripts/intranet/ClassesIntranet/AJAXManager.py
Antoine Durand-Gasselin fdfd2254d3 [lib/impression, intranet/impression] stripping trailing whitespaces
Ignore-this: a462d23b95fcfc99372f15a2dc645851

darcs-hash:20090516013103-bd074-7538108fca4203285f67d9f4adff82ade6c33f62.gz
2009-05-16 03:31:03 +02:00

38 lines
1.1 KiB
Python

from cherrypy.filters.basefilter import BaseFilter
import cherrypy._cputil
##########################
# DomFilter
##########################
#
# transforme des objets python
# en chainses de caracteres qui peuvent
# etre parsees avec JSON/javascript
#
class DOMFilter(BaseFilter):
def beforeFinalize(self):
body = cherrypy.response.body
if isinstance(body, dict):
body = self.printAsDom(body)
cherrypy.response.body = body
def printAsDom(self, chose):
if isinstance(chose, dict):
stringList = []
for a_key in chose.keys():
stringList.append('%s:%s' % (self.printAsDom(a_key), self.printAsDom(chose[a_key])))
return "{%s}" % ','.join(stringList)
if isinstance(chose, list):
stringList = []
for an_item in chose:
stringList.append('%s' % (self.printAsDom(an_item)))
return "[%s]" % ','.join(stringList)
if isinstance(chose, str):
return '"%s"' % chose
if isinstance(chose, unicode):
return '"%s"' % chose.encode('utf8')
return str(chose)