Changeset ee5437 in indico
- Timestamp:
- 08/23/11 15:38:44 (21 months ago)
- Branches:
- master, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 4c7d4152dff271ba5df5a8606605969cab454080
- Children:
- 1b4ee3
- Parents:
- f3a845
- git-author:
- Pedro Ferreira <jose.pedro.ferreira@…> (04/15/11 15:50:31)
- git-committer:
- Jose Benito <jose.benito.gonzalez@…> (08/23/11 15:38:44)
- Location:
- indico
- Files:
-
- 6 added
- 8 edited
-
MaKaC/services/interface/rpc/json.py (modified) (2 diffs)
-
MaKaC/webinterface/pages/conferences.py (modified) (5 diffs)
-
MaKaC/webinterface/pages/sessions.py (modified) (4 diffs)
-
util/fossilize/__init__.py (modified) (1 diff)
-
util/fossilize/conversion.py (modified) (1 diff)
-
util/json.py (modified) (3 diffs)
-
util/metadata/__init__.py (added)
-
util/metadata/html.py (added)
-
util/metadata/json.py (added)
-
util/metadata/serializer.py (added)
-
util/metadata/xml.py (added)
-
web/http_api/export.py (modified) (5 diffs)
-
web/http_api/fossils.py (added)
-
web/http_api/handlers.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
indico/MaKaC/services/interface/rpc/json.py
r137cf0 ree5437 20 20 from MaKaC.common.security import Sanitization 21 21 22 import simplejson23 22 from MaKaC.common.fossilize import fossilize, NonFossilizableException 24 23 from MaKaC.fossils.error import ICausedErrorFossil … … 35 34 36 35 from MaKaC.common.logger import Logger 37 38 # Test if simplejson escapes forward slashes. It changed its behaviour im some version. 39 if '\\/' in simplejson.dumps('/'): 40 dumps = simplejson.dumps 41 else: 42 def dumps(*args, **kwargs): 43 return simplejson.dumps(*args, **kwargs).replace('/', '\\/') 36 from indico.util.json import dumps 44 37 45 38 class Json: -
indico/MaKaC/webinterface/pages/conferences.py
rdfedc8 ree5437 23 23 import string 24 24 import random 25 import simplejson 26 import os.path 25 from indico.util import json 27 26 28 27 from datetime import timedelta,datetime … … 1336 1335 vars['getItemType'] = lambda item : self._getItemType(item) 1337 1336 vars['getLocationInfo'] = MaKaC.common.utils.getLocationInfo 1338 vars['dumps'] = simplejson.dumps1337 vars['dumps'] = json.dumps 1339 1338 else: 1340 1339 outGen = outputGenerator(self._rh._aw) … … 1471 1470 vars = wcomponents.WTemplated.getVars( self ) 1472 1471 tz = DisplayTZ(self._aw,self._conf).getDisplayTZ() 1473 vars["ttdata"] = simplejson.dumps(schedule.ScheduleToJson.process(self._conf.getSchedule(),1472 vars["ttdata"] = json.dumps(schedule.ScheduleToJson.process(self._conf.getSchedule(), 1474 1473 tz, self._aw, 1475 1474 useAttrCache = True)) 1476 1475 eventInfo = fossilize(self._conf, IConferenceEventInfoFossil, tz = tz) 1477 1476 eventInfo['isCFAEnabled'] = self._conf.getAbstractMgr().isActive() 1478 vars['eventInfo'] = simplejson.dumps(eventInfo)1477 vars['eventInfo'] = json.dumps(eventInfo) 1479 1478 vars['timetableLayout'] = vars.get('ttLyt','') 1480 1479 return vars … … 3428 3427 vars["editURL"]=quoteattr(str(urlHandlers.UHConfModScheduleDataEdit.getURL(self._conf))) 3429 3428 3430 vars['ttdata'] = simplejson.dumps(schedule.ScheduleToJson.process(self._conf.getSchedule(), tz, None,3429 vars['ttdata'] = json.dumps(schedule.ScheduleToJson.process(self._conf.getSchedule(), tz, None, 3431 3430 days = None, mgmtMode = True)) 3432 3431 vars['customLinks'] = self._customLinks … … 3434 3433 eventInfo = fossilize(self._conf, IConferenceEventInfoFossil, tz = tz) 3435 3434 eventInfo['isCFAEnabled'] = self._conf.getAbstractMgr().isActive() 3436 vars['eventInfo'] = simplejson.dumps(eventInfo)3435 vars['eventInfo'] = json.dumps(eventInfo) 3437 3436 3438 3437 return vars -
indico/MaKaC/webinterface/pages/sessions.py
r34d140 ree5437 45 45 from pytz import timezone 46 46 from MaKaC.common.timezoneUtils import DisplayTZ 47 import simplejson47 from indico.util import json 48 48 import pytz 49 49 import copy … … 387 387 def _getTimeTableHTML(self): 388 388 389 ttdata = simplejson.dumps(schedule.ScheduleToJson.process(self._session.getSchedule(), self._tz,389 ttdata = json.encode(schedule.ScheduleToJson.process(self._session.getSchedule(), self._tz, 390 390 None, days = None, mgmtMode = False)) 391 391 392 392 eventInfo = fossilize(self._session.getConference(), IConferenceEventInfoFossil, tz=self._tz) 393 393 eventInfo['timetableSession'] = fossilize(self._session, ISessionFossil, tz=self._tz) 394 eventInfo = simplejson.dumps(eventInfo)394 eventInfo = json.encode(eventInfo) 395 395 396 396 return """ … … 1450 1450 vars["timezone"]= tz 1451 1451 1452 vars['ttdata'] = simplejson.dumps(schedule.ScheduleToJson.process(self._session.getSchedule(), tz,1452 vars['ttdata'] = json.encode(schedule.ScheduleToJson.process(self._session.getSchedule(), tz, 1453 1453 None, days = None, mgmtMode = True)) 1454 1454 … … 1456 1456 eventInfo['timetableSession'] = fossilize(self._session, ISessionFossil, tz=tz) 1457 1457 eventInfo['isCFAEnabled'] = self._session.getConference().getAbstractMgr().isActive() 1458 vars['eventInfo'] = simplejson.dumps(eventInfo)1458 vars['eventInfo'] = json.encode(eventInfo) 1459 1459 1460 1460 return vars -
indico/util/fossilize/__init__.py
r80fd59 ree5437 187 187 else: 188 188 interface = interfaceArg 189 190 if not interface.providedBy(self):191 192 raise WrongFossilTypeException("Interface '%s' not provided"193 " by '%s'" %194 (interface.__name__,195 self.__class__.__name__))196 189 197 190 return interface -
indico/util/fossilize/conversion.py
rb2f059 ree5437 35 35 else: 36 36 date = dt 37 return {'date': str(date.date()), 'time': str(date.time())}37 return date 38 38 else: 39 39 return None -
indico/util/json.py
r72d2c9 ree5437 24 24 import json as _json 25 25 26 from datetime import datetime 26 27 from indico.util.i18n import LazyProxy 27 28 29 # Test if simplejson escapes forward slashes. It changed its behaviour im some version. 30 if '\\/' in _json.dumps('/'): 31 _json_dumps = simplejson.dumps 32 else: 33 def _json_dumps(*args, **kwargs): 34 return _json.dumps(*args, **kwargs).replace('/', '\\/') 28 35 29 class I18nJSONEncoder(_json.JSONEncoder):36 class _JSONEncoder(_json.JSONEncoder): 30 37 """ 31 Custom JSON encoder that supports i18n lazy strings38 Custom JSON encoder that supports more types 32 39 """ 33 40 def default(self, o): 34 41 if isinstance(o, LazyProxy): 35 42 return str(o) 43 elif type(o) is datetime: 44 return {'date': str(o.date()), 'time': str(o.time()), 'tz': str(o.tzinfo)} 36 45 return _json.JSONEncoder.default(self, o) 37 46 … … 41 50 Simple wrapper around json.dumps() 42 51 """ 43 return _json.dumps(obj, cls=I18nJSONEncoder, **kwargs) 52 if kwargs.pop('pretty', False): 53 kwargs['indent'] = 4 * ' ' 54 return _json_dumps(obj, cls=_JSONEncoder, **kwargs) 44 55 45 56 … … 55 66 Mako filter 56 67 """ 57 return _json .dumps(obj)68 return _json_dumps(obj) -
indico/web/http_api/export.py
rf3a845 ree5437 34 34 # indico imports 35 35 from indico.util.date_time import nowutc 36 from indico.util.fossilize import fossilize 37 38 from indico.util.metadata import Serializer 39 from indico.web.http_api.fossils import IConferenceMetadataFossil 36 40 37 41 # indico legacy imports … … 49 53 50 54 def category(cls, idlist, dformat, fromDT, toDT, location=None, limit=None, 51 orderBy=None, descending=False, detail="events" ):55 orderBy=None, descending=False, detail="events", pretty=False): 52 56 """ 53 57 TODO: Document this 54 58 """ 55 59 56 def event(cls, idlist, dformat, orderBy=None, descending=False, detail="events"): 60 def event(cls, idlist, dformat, orderBy=None, descending=False, detail="events", 61 pretty=False): 57 62 """ 58 63 TODO: Document this … … 130 135 131 136 def category(self, idlist, dformat, fromDT, toDT, location=None, limit=None, 132 orderBy=None, descending=False, detail="events", tz =None):137 orderBy=None, descending=False, detail="events", tzName=None, pretty=False): 133 138 134 139 self._dbi.startRequest() 135 140 136 if tz == None:141 if tzName == None: 137 142 info = HelperMaKaCInfo.getMaKaCInfoInstance() 138 tz = pytz.timezone(info.getTimezone()) 143 tzName = info.getTimezone() 144 145 tz = pytz.timezone(tzName) 139 146 140 147 fromDT = ExportInterface._getDateTime('from', fromDT, tz) if fromDT != None else None … … 156 163 break 157 164 if obj not in exclude: 158 results.append( obj.id)165 results.append(fossilize(obj, IConferenceMetadataFossil, tz=tz)) 159 166 exclude.add(obj) 160 167 counter += 1 … … 164 171 self._dbi.endRequest(False) 165 172 166 return dumps(results) 173 serializer = Serializer.create(dformat, pretty=pretty) 174 175 # TODO: set content-type 176 177 return serializer(results) 167 178 168 179 def event(self, idlist, dformat, orderBy=None, descending=False, detail="events"): -
indico/web/http_api/handlers.py
rf3a845 ree5437 68 68 descending = get_query_parameter(qdata, ['c', 'descending'], False) 69 69 detail = get_query_parameter(qdata, ['d', 'detail'], 'events') 70 pretty = get_query_parameter(qdata, ['p', 'pretty'], 'no') 71 tz = get_query_parameter(qdata, ['tz'], None) 70 72 71 73 expInt = ExportInterface(DBMgr.getInstance()) … … 78 80 79 81 return expInt.category(idlist, dformat, fromDT, toDT, location, 80 limit, orderBy, descending, detail) 82 limit, orderBy, descending, detail, tz, 83 True if pretty == 'yes' else False) 81 84 else: 82 85 # TODO: usage page
Note: See TracChangeset
for help on using the changeset viewer.
