Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install products.cmfuid

How to install Products.CMFUid

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install products.cmfuid
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
2.3.0-beta Available View build log
2.2.1 Available View build log
Windows (64-bit)
2.3.0-beta Available View build log
2.2.1 Available View build log
Mac OS X (10.5+)
2.3.0-beta Available View build log
2.2.1 Available View build log
Linux (32-bit)
2.3.0-beta Available View build log
2.2.1 Available View build log
Linux (64-bit)
2.3.0-beta Available View build log
2.2.1 Available View build log
 
License
ZPL 2.1 (http://www.zope.org/Resources/License/ZPL
Lastest release
version 2.3.0-beta on May 23rd, 2012

CMFUid introduces a simple unique id implementation.

Implementation

The supplied tools attach the unique ids to the objects. The objects do not have to be aware of unique ids.

The current implementation depends on the portal catalog to find an object of a given unique id. The interfaces do not imply the use of the catalog (except the IUniqueIdBrainQuery).

Which Tool does What?

The 'portal_uidgenerator' tools responsibility is to generate unique ids. The 'portal_uidannotation' tool is responsible to attach unique ids to a content object, and enforce rules about what happens on object move/create/delete. The 'portal_uidhandler' manages registering and accessing unique ids.

This design was chosen to allow users replacing only parts of the functionality without having to understand the whole thing.

Unique Id API

'portal_uidhandler' implementing 'IUniqueIdHandler' is the main API for playing with unique ids.

Usage

'portal_uidhandler' fully implements IUniqueIdHandler (IUniqueIdSet for registering/unregistering unique ids, IUniqueIdQuery for queries and IUniqueIdBrainQuery for more efficient queries by returning catalog brains instead of objects).

The current implementation of get/queryBrain and get/queryObject do not return invisible objects (and brains of invisible objects). By invisible objects, we mean objects that would be filtered out by portal_catalog.searchResults due to expiry/effective date and/or user roles.

It is often necessary to avoid this filtering in an application. To do this, use the unrestrictedGet/QueryBrain and unrestrictedGet/QueryObject as this will avoid 'None' results.

Have a look at the interfaces.

CMFUid's functionality is used by CMFDefault's favorite content type to follow linked objects. The favorite content type works as before if CMFUid is not installed.

Update 2007-03-30

The annotation code has been updated to use events for assigning/removing uids. The settings for this live in the portal_uidannotation tool.

The default behaviour is:

  • uids are NOT assigned when an object is created

System Message: WARNING/2 (<string>, line 71)

Bullet list ends without a blank line; unexpected unindent.

(it is assumed that other code is responsible for this)

  • when an object is moved, a UID is not changed
  • when an object is imported, any EXISTING UID is removed

System Message: WARNING/2 (<string>, line 76)

Bullet list ends without a blank line; unexpected unindent.

(this can be controlled via the 'remove_on_add' property)

  • when an object is copied, any EXISTING UID is removed

System Message: WARNING/2 (<string>, line 79)

Bullet list ends without a blank line; unexpected unindent.

(this can be controlled via the 'remove_on_clone' property)

A more natural behaviour is for UIDs to be assigned automatically on creation. To enable this feature:

  • tick the 'assign UIDs on add' tickbox

System Message: WARNING/2 (<string>, line 85)

Bullet list ends without a blank line; unexpected unindent.

(uids will now be assigned when content is added or imported and any EXISTING uid will be replaced)

  • tick the 'assign UIDs on copy' tickbox

System Message: WARNING/2 (<string>, line 89)

Bullet list ends without a blank line; unexpected unindent.

(objects will get a NEW uid when they are copied which will replace any EXISTING uid)

In order to preserve the original behaviour of the tool, automatic assignment of uids is NOT enabled by default - it must be turned on in the uidannotation tool.

The behaviour is hooked in based on object creating/deletion/move events for any IContentish objects. The event handlers live in the UniqueIdAnnotation tool.


Products.CMFUid Changelog

2.3.0-beta (2012-03-21)
  • Made sure converted tools are used as utilities.
  • Require at least Zope 2.13.4.
  • Deal with deprecation warnings for Zope 2.13.
  • Fix markup error (Chameleon compatibility)
2.2.0-beta (2009-12-06)
  • no changes from version 2.2.0-alpha
2.2.0-alpha (2009-11-13)
  • moved the Zope dependency to version 2.12.0b3dev
  • Cleaned up / normalized imports:

o Don't import from Globals; instead, use real locations.

o Make other imports use the actual source module, rather than an intermediate (e.g., prefer importing 'ClassSecurityInfo' from 'AccessControl.SecurityInfo' rather than from 'AccessControl').

  • Add missing utility registration for IUniqueIdHandler. See

System Message: WARNING/2 (<string>, line 138)

Bullet list ends without a blank line; unexpected unindent.

https://bugs.launchpad.net/bugs/299058 .

  • UniqueIdHandlerTool: Call the reindexObject attribute of the object

System Message: WARNING/2 (<string>, line 141)

Bullet list ends without a blank line; unexpected unindent.

getting a uid, rather than portal_catalog's reindexObject. This is needed to properly handle objects like the portal itself which shouldn't get catalogued ever.

  • Removed redundant and unexpected code to auto-create catalog index and

System Message: WARNING/2 (<string>, line 146)

Bullet list ends without a blank line; unexpected unindent.

column for the UID handler tool. The index and column are already created by the default CMFUid GenericSetup profile. (http://www.zope.org/Collectors/CMF/472)

2.1.2 (2008-09-13)
  • no changes from 2.1.2-beta
2.1.2-beta (2008-08-26)
  • completed devolution from monolithic CMF package into its component

System Message: WARNING/2 (<string>, line 161)

Bullet list ends without a blank line; unexpected unindent.

products that are distributed as eggs from PyPI.

  • testing: Base UidEventZCMLLayer on ZopeTestCase.layer.ZopeLite.
  • UniqueIdHandlerTool: Use %r instead of %s in error messages, so

System Message: WARNING/2 (<string>, line 166)

Bullet list ends without a blank line; unexpected unindent.

we don't trip over non-ASCII representations (e.g. File and Image).

2.1.1 (2008-01-06)
  • no changes
2.1.1-beta(2007-12/29)
  • Testing: Derive test layers from ZopeLite layer if available.
2.1.0 (2007-08-08)
  • Fixed all componentregistry.xml files to use plain object paths and strip

System Message: WARNING/2 (<string>, line 185)

Bullet list ends without a blank line; unexpected unindent.

and slashes. GenericSetup does only support registering objects which are in the site root.

2.1.0-beta2 (2007-07-12)
  • moved the Zope dependency to version 2.10.4
  • Remove antique usage of marker attributes in favor of interfaces,

System Message: WARNING/2 (<string>, line 195)

Bullet list ends without a blank line; unexpected unindent.

leaving BBB behind for places potentially affecting third-party code. (http://www.zope.org/Collectors/CMF/440)

  • Add POST-only protections to security critical methods.

System Message: WARNING/2 (<string>, line 199)

Bullet list ends without a blank line; unexpected unindent.

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0240)

  • UniqueIdAnnotationTool: Annotation handling has been switched

System Message: WARNING/2 (<string>, line 202)

Bullet list ends without a blank line; unexpected unindent.

from triggering it through old-style manage_*-methods to using events. UID assigning behavior has been made more flexible. Please review CMFUid/README.txt for information about the current behavior and the new features. (http://www.zope.org/Collectors/CMF/474)

2.1.0-beta (2007-03-09)
  • moved the Zope dependency to verson 2.10.2
  • Tool lookup and registration is now done "the Zope 3 way" as utilities, see

System Message: WARNING/2 (<string>, line 215)

Bullet list ends without a blank line; unexpected unindent.

http://svn.zope.org/CMF/branches/2.1/docs/ToolsAreUtilities.stx?view=auto

  • UniqueIdHandlerTool: Touching the internal UID value on a

System Message: WARNING/2 (<string>, line 218)

Bullet list ends without a blank line; unexpected unindent.

content item will not cause reindexing all indices anymore, only the specific UID index will be touched. (http://www.zope.org/Collectors/CMF/469)

2.1.0-alpha2 (2006-11-23)
  • moved the Zope dependency to version 2.10.1
  • Fixed test breakage induced by use of Z3 pagetemplates in Zope 2.10+.
  • browser views: Added some zope.formlib based forms.
  • testing: Added test layers for setting up ZCML.
2.1.0-alpha (2006-10-09)
  • skins: Changed encoding of translated portal_status_messages.

System Message: WARNING/2 (<string>, line 239)

Bullet list ends without a blank line; unexpected unindent.

Now getBrowserCharset is used to play nice with Five forms. Customized setRedirect and getMainGlobals scripts have to be updated.

  • Profiles: All profiles are now registered by ZCML.
  • ZClasses: Removed unmaintained support for ZClasses.

System Message: WARNING/2 (<string>, line 245)

Bullet list ends without a blank line; unexpected unindent.

Marked the 'initializeBases*' methods as deprecated.

  • Content: Added IFactory utilities for all content classes.

System Message: WARNING/2 (<string>, line 248)

Bullet list ends without a blank line; unexpected unindent.

They are now used by default instead of the old constructor methods.

  • Content: All content classes are now registered by ZCML.

System Message: WARNING/2 (<string>, line 251)

Bullet list ends without a blank line; unexpected unindent.

ContentInit is still used to register oldstyle constructors.

  • setup handlers: Removed support for CMF 1.5 CMFSetup profiles.
Earlier releases

For a complete list of changes before version 2.1.0-alpha, see the HISTORY.txt file on the CMF-2.1 branch: http://svn.zope.org/CMF/branches/2.1/HISTORY.txt?view=auto


Subscribe to package updates

Last updated May 23rd, 2012

Download Stats

Last month:5

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.