common/uilib.py
branchtls-sprint
changeset 1016 26387b836099
parent 985 6a25c58a1c23
child 1132 96752791c2b6
equal deleted inserted replaced
1014:4792a1bb72a9 1016:26387b836099
    10 __docformat__ = "restructuredtext en"
    10 __docformat__ = "restructuredtext en"
    11 
    11 
    12 import csv
    12 import csv
    13 import decimal
    13 import decimal
    14 import re
    14 import re
       
    15 from datetime import datetime, date, timedelta
    15 from urllib import quote as urlquote
    16 from urllib import quote as urlquote
    16 from cStringIO import StringIO
    17 from cStringIO import StringIO
    17 from copy import deepcopy
    18 from copy import deepcopy
    18 
       
    19 
       
    20 from mx.DateTime import DateTimeType, DateTimeDeltaType
       
    21 
    19 
    22 from logilab.common.textutils import unormalize
    20 from logilab.common.textutils import unormalize
    23 from logilab.mtconverter import html_escape, html_unescape
    21 from logilab.mtconverter import html_escape, html_unescape
    24 
    22 
    25 from cubicweb.utils import ustrftime
    23 from cubicweb.utils import ustrftime
   507     import simplejson
   505     import simplejson
   508     def newfunc(*args, **kwargs):
   506     def newfunc(*args, **kwargs):
   509         ret = function(*args, **kwargs)
   507         ret = function(*args, **kwargs)
   510         if isinstance(ret, decimal.Decimal):
   508         if isinstance(ret, decimal.Decimal):
   511             ret = float(ret)
   509             ret = float(ret)
   512         elif isinstance(ret, DateTimeType):
   510         elif isinstance(ret, (date, datetime)):
   513             ret = ret.strftime('%Y-%m-%d %H:%M')
   511             ret = ret.strftime('%Y-%m-%d %H:%M')
   514         elif isinstance(ret, DateTimeDeltaType):
   512         elif isinstance(ret, timedelta):
   515             ret = ret.seconds
   513             ret = (ret.days * 24*60*60) + ret.seconds
   516         try:
   514         try:
   517             return simplejson.dumps(ret)
   515             return simplejson.dumps(ret)
   518         except TypeError:
   516         except TypeError:
   519             return simplejson.dumps(repr(ret))
   517             return simplejson.dumps(repr(ret))
   520     return newfunc
   518     return newfunc