Package ZenModel :: Module ZenPackPersistence :: Class ZenPackPersistence
[hide private]
[frames] | no frames]

Class ZenPackPersistence

source code

object --+
         |
        ZenPackPersistence

This is a mix-in class that should be used whenever a ZenPack-supplied class is going to be stored persistently in the zodb. It provides for a catalog to associate objects in zodb with the ZenPacks that provide those objects' classes.

The motivation for this is that we usually need to delete all instances of zenpack-supplied classes when that zenpack is deleted. This is because the class for those objects no longer exists and they are just sad, broken, unloved objects in the zodb at that point. This is undesirable.

IMPORTANT: This should be the first class listed in any subclasses's list of parents. Otherwise the manage_* methods of the other classes will likely be called and these skipped.

Instance Methods [hide private]
 
getZenPackName(self) source code
 
getZenPack(self, context)
Return the ZenPack instance that provides this object.
source code
 
path(self, *parts)
Return the path to the installed ZenPack directory or a subdirectory.
source code
 
index_object(self)
A common method to allow Findables to index themselves.
source code
 
unindex_object(self)
A common method to allow Findables to unindex themselves.
source code
 
manage_afterAdd(self, item, container) source code
 
manage_afterClone(self, item) source code
 
manage_beforeDelete(self, item, container) source code

Inherited from object: __delattr__, __getattribute__, __hash__, __init__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

path(self, *parts)

source code 
Return the path to the installed ZenPack directory or a subdirectory. Example: zenpack.path('libexec') would return something like $ZENHOME/ZenPacks/ZenPacks.Me.MyZenPack/ZenPacks/Me/MyZenPack/libexec