This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

This package was designed to be a light-weight and easy-to-use static tree implementation. It allows the developer to quickly create trees with nodes that can be opened and closed without the use of JavaScript. The tree state can be retained over multiple sessions.

Detailed Documentation

ZopeTree

What is ZopeTree?

ZopeTree is a port of Philipp’s Zope2 product ZopeTree. ZopeTree was meant to be a light-weight and easy-to-use static tree implementation, mainly designed for use in ZPTs. It was originally written because Zope2’s ZTUtils.Tree was found to be too complicated and inflexible.

The ZTUtils package has not been ported to Zope3. Parts of it, like batching, have found their way into Zope3, though. Only support for static tree generation is not in the core.

How to use it

Using the skin

ZopeTree comes with a pre-defined skin, StaticTree. It looks just like Zope3’s default skin, Rotterdam, except that it displays a static tree in the navigation box instead of the Javascript/XML based dynamic tree.

Using predefined views on objects

ZopeTree comes with several predefined views:

cookie_tree
simple view using cookies for tree state storage.
folder_cookie_tree
same as above, however only showing folders.
site_cookie_tree
same as above, with the nearest site as root node.
root_cookie_tree
same as above, with the root container as root node.

The example page template(s) in the browser package give an idea how to use these views for HTML templating.

Customization

The best way to customize ZopeTree is to define your own view for objects (usually ‘*’). If you want to use the cookie functionality, simply extend the cookie browser view:

from zope.app.tree.filters import OnlyInterfacesFilter
from zope.app.tree.browser.cookie import CookieTreeView

class BendableStaticTreeView(StaticTreeView):

    def bendablesTree(self):
        # tree with only IBendables, but also show the folder
        # they're in
        filter = OnlyInterfacesFilter(IBendable, IFolder)
        return self.cookieTree(filter)

You can also write your own filters. All you have to do is implement the IObjectFindFilter interface (which is trivial):

from zope.interface import implements
from zope.app.interfaces.find import IObjectFindFilter

class BendableFilter:
    implements(IObjectFindFilter)

    def matches(self, obj)
        # only allow bendable objects
        return obj.isBendable()

Credits

Thanks to ZopeMag (http://zopemag.com) for sponsoring development of the original ZopeTree product.

Thanks to Runyaga LLC (http://runyaga.com) for sponsoring the Zope3 port.

CHANGES

3.6.0 (2009-02-01)

  • Converted from using zope.app.container to zope.container.

3.5.1 (2009-01-29)

  • Add compatibility for newer zope.traversing releases that require us to explicitly set up testing. This also works with older releases.

3.5.0 (2009-01-17)

  • Get rid of zope.app.zapi dependency, replacing its uses with direct imports.
  • Clean up dependencies, move testing and rotterdam dependencies to extra requires.
  • Fix mailing list address to zope-dev@zope.org instead of retired zope3-dev@zope.org. Change cheeseshop to pypi in the package url.
  • Replace __used_for__ in adapters.py with zope.component.adapts calls to make more sense.
  • Remove obsolete zpkg files, zcml include file for mkzopeinstance-based installations, versions.txt that makes no sense now.

3.4.0 (2007-10-28)

  • Initial release independent of the main Zope tree.
Release History

Release History

3.6.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.5.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.5.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.4.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.4.0a1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
zope.app.tree-3.6.0.tar.gz (19.9 kB) Copy SHA256 Checksum SHA256 Source Feb 1, 2009

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development 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