Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

JSON RPC item tree for Zope3

Project Description

This package provides an JSON-RPC item tree implementation for Zope3.

Detailed Documentation

JSONRPC Tree

This package offers a JSONRPC tree view which can be used as navigation tree. Let’s show how we can register our jsonrpc tree view:

>>> from zope.configuration import xmlconfig
>>> import z3c.jsonrpc
>>> context = xmlconfig.file('meta.zcml', z3c.jsonrpc)
>>> context = xmlconfig.string("""
... <configure
...     xmlns:z3c="http://namespaces.zope.org/z3c">
...   <z3c:jsonrpc
...       for="*"
...       class="z3c.jsontree.jsonrpc.JSONTreeItems"
...       permission="zope.Public"
...       methods="loadJSONTreeItems"
...       layer="z3c.jsonrpc.testing.IJSONRPCTestSkin"
...       />
... </configure>
... """, context)

Now we will setup some content structure based on the default zope folder class:

>>> from zope.site.folder import Folder
>>> site  = getRootFolder()
>>> content = Folder()
>>> site['content'] = content

And we need to be able to get an absoluteURL for the form:

>>> import zope.interface
>>> import zope.component
>>> from zope.location.interfaces import ILocation
>>> from zope.traversing.browser.interfaces import IAbsoluteURL
>>> class FakeURL(object):
...     zope.interface.implements(IAbsoluteURL)
...     zope.component.adapts(ILocation, zope.interface.Interface)
...     def __init__(self, context, request):
...         pass
...     def __str__(self):
...         return u'http://fake/url'
...     def __call__(self):
...         return str(self)
>>> zope.component.provideAdapter(FakeURL)

JSON-RPC proxy

If we call our JSON-RPC tree item method, we can see the different JSON data on the different contexts:

>>> from z3c.jsonrpc.testing import JSONRPCTestProxy
>>> siteURL = 'http://localhost/++skin++JSONRPCTestSkin'
>>> proxy = JSONRPCTestProxy(siteURL)
>>> proxy.loadJSONTreeItems('z3cJSONTree')
{u'treeChilds': {u'childs':
[{u'hasChilds': False,
  u'contextURL': u'http://fake/url',
  u'url': u'http://fake/url/@@SelectedManagementView.html',
  u'linkHandler': u'',
  u'content': u'content',
  u'iconURL': u'',
  u'id': u'z3cJSONTree.::content'}],
  u'id': u'z3cJSONTree'}}

The content object has no items and returns some empty JSON data:

>>> proxy = JSONRPCTestProxy(siteURL + '/content')
>>> proxy.loadJSONTreeItems('z3cJSONTree')
{u'treeChilds': {u'childs': [], u'id': u'z3cJSONTree'}}

CHANGES

0.6.0 (2010-09-23)

  • reflect changes in zope packages, use new package externals
  • fix broken tests
  • Fix className handling in javacsript, it seems that newer version of JQuery can’t handle $.className.has(ele, …) use $(ele).hasClass(…) instead.
  • Fix: getParentsFromContextToObject, don’t return a parent chain if an item is a location proxied NotFound error object. It’s possible that such a NotFound object will wrap a context which we don’t allow in our parent chain at all.

0.5.1 (2009-03-10)

  • Fix: use imports from newest packages e.g. zope.site.folder.Folder
  • Fix: be smart to NotFound error objects. NotFound errors are not locatable.

0.5.0 (2008-04-16)

  • Fix: adjust ITreeItems adapter. Added additional discriminator which prevents to get missused as /@@/ adapter if configured with base registry
  • implemented ITreeItems adapter which is responsible for list all items listed in tree
  • Initial Release
Release History

Release History

This version
History Node

0.6.0

History Node

0.5.1

History Node

0.5.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
z3c.jsontree-0.6.0.tar.gz (20.8 kB) Copy SHA256 Checksum SHA256 Source Sep 23, 2010

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting