Hi Wichert!

Wichert Akkerman wrote:
At the moment it is not possible to use skin layers in pure python
packages. This is caused by the DirectoryView implementation using
a minimal path name for the layer id. This path name is created
by CMFCore.utils.minimalpath, which uses the ProductsPaths list of
directories to look for the filesystem directory and uses an absolute
path if it can't find it. Since this absolute path will differ per
install you can't use it in something like genericsetup profiles.

The patch below fixes this by adding $INSTANCE_HOME/lib/python to the
ProductsPaths list. This allows minimalpath to find python packages installed
there.

Are there any objections to commiting this to trunk?

Yes, I object. This is a hack that resolves the issue just for some special use cases. We need a solution that works with python packages anywhere in the python path.

Please read this thread:
http://mail.zope.org/pipermail/zope-cmf/2006-July/024631.html

And please note that we just need a human readable registry key, nothing that allows to look up the directories directly.

Different keys are possible, e.g.:

  Products.MyProduct/skins/my_skin
  MyPackage.MySubPackage/skins/my_skin

  Products/MyProduct/skins/my_skin
  MyPackage/MySubPackage/skins/my_skin

  Products.MyProduct:skins/my_skin
  MyPackage.MySubPackage:skins/my_skin

  Products.MyProduct:my_skin
  MyPackage.MySubPackage:my_skin

I think the old keys should become deprecated and replaced everywhere.


Cheers,

        Yuppie

_______________________________________________
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests

Reply via email to