~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/canonical/launchpad/webapp/publisher.py

  • Committer: Julian Edwards
  • Date: 2011-07-28 20:46:18 UTC
  • mfrom: (13553 devel)
  • mto: This revision was merged to the branch mainline in revision 13555.
  • Revision ID: julian.edwards@canonical.com-20110728204618-tivj2wx2oa9s32bx
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
    ]
27
27
 
28
28
import httplib
 
29
import simplejson
29
30
 
30
31
from zope.app import zapi
31
32
from zope.app.publisher.interfaces.xmlrpc import IXMLRPCView
51
52
    )
52
53
from zope.traversing.browser.interfaces import IAbsoluteURL
53
54
 
 
55
from lazr.restful import (
 
56
    EntryResource,
 
57
    ResourceJSONEncoder,
 
58
    )
54
59
from lazr.restful.declarations import error_status
 
60
from lazr.restful.interfaces import IJSONRequestCache
 
61
 
 
62
from lazr.restful.tales import WebLayerAPI
55
63
 
56
64
from canonical.launchpad.layers import (
57
65
    LaunchpadLayer,
340
348
 
341
349
    info_message = property(_getInfoMessage, _setInfoMessage)
342
350
 
 
351
    def getCacheJSON(self):
 
352
        if self.user is not None:
 
353
            cache = dict(IJSONRequestCache(self.request).objects)
 
354
        else:
 
355
            cache = dict()
 
356
        if WebLayerAPI(self.context).is_entry:
 
357
            cache['context'] = self.context
 
358
        return simplejson.dumps(
 
359
            cache, cls=ResourceJSONEncoder,
 
360
            media_type=EntryResource.JSON_TYPE)
 
361
 
343
362
 
344
363
class LaunchpadXMLRPCView(UserAttributeCache):
345
364
    """Base class for writing XMLRPC view code."""