Metadata-Version: 1.0
Name: plone.folder
Version: 1.0b4
Summary: BTree-based folder implementation with order support
Home-page: http://pypi.python.org/pypi/plone.folder/
Author: Plone Foundation
Author-email: plone-developers@lists.sourceforge.net
License: LGPL
Description: 
        
        Overview
        --------
        
        This package provides a base class for folderish content types based
        on `B-trees`_, a.k.a. "large folders" in Plone_.  Storing content in
        such folders provides significant `performance benefits`_ over regular
        folders.  However, "large folders" do not support explicit ordering of
        their contents out-of-the box.  That is, you cannot manually specify the
        order of items within the folder, you can only sort things according to
        a given criteria after fetching items from the folder.
        
        .. _`B-tree`: http://en.wikipedia.org/wiki/B-tree
        .. _`B-trees`: http://en.wikipedia.org/wiki/B-tree
        .. _`Plone`: http://plone.org/
        .. _`performance benefits`: http://plone.org/products/plone/roadmap/191
        .. |---| unicode:: U+2014  .. em dash
        
        Many times, though, it is desirable to be able to explicitly order
        a folder's content, for example for items that are related to site
        navigation.  Sorting alphabetically often doesn't make sense here.
        
        To compensate ``plone.folder`` provides ordering support for `B-tree`_
        folders via the above mentioned base class, which can make use of an
        adapter to store the actual order information.  It also comes with two
        sample adapter implementations:
        
        * A default adapter handling order information for all objects
        contained in a folder.  This adapter can be used to build fully
        backwards-compatible drop-in replacements for folderish content.
        In other words, when using this adapter `B-tree`_-based folders should
        behave just like the "regular" folder implementation, but provide some
        of the performance benefits at the same time.
        
        * An alternative adapter implementation that is targeted towards
        sites with only a relatively small percentage of content for which
        (explicit) order matters.  It'll only manage order information for
        certain content types (via a marker interface).
        
        The latter allows to not having to separate such content from
        "non-orderable" content.  Up to now many large sites ended up storing
        "orderable" items |---| for example everything related to navigation
        and typically only a few |---| in regular folders and the bulk of the
        content in "large" folders, most of the time solely for performance
        reasons.  This adapter will hopefully help avoid having to make this
        distinction in the future and still provide the better performance
        characteristics of `B-tree`_ folders.
        
        Changelog
        =========
        
        1.0b4 - Released February 17, 2010
        ----------------------------------
        
        * Register all ordering adapter by default now that they can co-exist.
        [witsch]
        
        * Add `__getitem__` support to the default ordering adapter to help
        previous/next support in `plone.app.folder`.
        [witsch]
        
        
        1.0b3 - Released February 9, 2010
        ---------------------------------
        
        * Make sure order changes are persisted when using the partial ordering
        adapter.
        [hannosch, witsch]
        
        
        1.0b2 - Released January 28, 2010
        ---------------------------------
        
        * Make the dependency on `Products.CMFCore` a soft one.
        [witsch]
        
        * Added an 'unordered' adapter which can be used when no explicit ordering
        is needed.
        [davisagli]
        
        * Allow the use of different named adapters to ``IOrdering``, with the name
        determined by the folder's ``_ordering`` attribute.
        [davisagli]
        
        
        1.0b1 - Released October 10, 2009
        ---------------------------------
        
        * Fix the WebDAV content creation process by properly returning a
        ``NullResource`` when required.
        [optilude]
        
        
        1.0a3 - Released May 11, 2009
        -----------------------------
        
        * Let ``objectIds`` always return all object ids, even with partial ordering.
        [witsch]
        
        
        1.0a2 - Released May 7, 2009
        ----------------------------
        
        * Fix a bug in the default ordering that would cause the ``pos`` dict to get
        out of sync when an item is deleted.
        [optilude]
        
        * Declare ``IContainer`` support.
        [optilude]
        
        * Properly set ``__parent__`` and ``__name__`` for ``IContained`` in
        ``_setOb()``.
        [optilude]
        
        * Add ``__getitem__``, needed when not using the CMF mix-in.
        [optilude]
        
        * Added ``__setitem__``, ``__contains__`` and ``__delitem__`` to support a
        dict-like API.
        [optilude]
        
        * Fix issue with removing non-orderable content for partial ordering suppport.
        [witsch]
        
        * Fix ``getObjectPosition`` to return a value representing "no position" for
        non-orderable content instead of raising an error.
        [witsch]
        
        * Fix boolean value of the btree-based folder base class.
        [witsch]
        
        * Factor CMF out of the base classes for the new btree-based folder class
        and simplify things a bit afterwards.
        [witsch]
        
        * Add adapter providing explicit ordering only for "orderable" content.
        [witsch]
        
        * Clean up tests and their setup.
        [witsch]
        
        
        1.0a1 - Released May 27, 2008
        -----------------------------
        
        * Initial release
        [optilude, tesdal, witsch]
        
Keywords: folder btree order
Platform: Any
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Other Audience
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
