~leonardr/lazr.restful/web-link

« back to all changes in this revision

Viewing changes to src/lazr/restful/_resource.py

  • Committer: Leonard Richardson
  • Date: 2011-01-20 23:54:37 UTC
  • Revision ID: leonard.richardson@canonical.com-20110120235437-7gdfn62fiej5ydpv
Added IWebBrowserOriginatingRequest.

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
from zope.app.pagetemplate.engine import TrustedAppPT
48
48
from zope import component
49
49
from zope.component import (
50
 
    adapts, getAdapters, getAllUtilitiesRegisteredFor,
51
 
    getGlobalSiteManager, getMultiAdapter, getSiteManager, getUtility,
52
 
    queryMultiAdapter)
 
50
    adapts,
 
51
    getAdapters,
 
52
    getAllUtilitiesRegisteredFor,
 
53
    getGlobalSiteManager,
 
54
    getMultiAdapter,
 
55
    getSiteManager,
 
56
    getUtility,
 
57
    queryAdapter,
 
58
    queryMultiAdapter,
 
59
    )
53
60
from zope.component.interfaces import ComponentLookupError
54
61
from zope.event import notify
55
62
from zope.publisher.http import init_status_codes, status_reasons
1407
1414
        """
1408
1415
        data = {}
1409
1416
        data['self_link'] = absoluteURL(self.context, self.request)
1410
 
        data['web_link'] = absoluteURL(self.context,
1411
 
            get_current_browser_request())
 
1417
        from lazr.restful.interfaces import IWebBrowserOriginatingRequest
 
1418
        browser_request = queryAdapter(self.request, IWebBrowserOriginatingRequest)
 
1419
        if browser_request is not None:
 
1420
            # Objects in the web server correspond to objects on some website.
 
1421
            # Provide the link to the correspnding object on the website.
 
1422
            data['web_link'] = absoluteURL(self.context, browser_request)
1412
1423
        data['resource_type_link'] = self.type_url
1413
1424
        unmarshalled_field_values = {}
1414
1425
        for name, field in getFieldsInOrder(self.entry.schema):