I'd like to provide some default utilities for my sub-site.
As I checked there is the nice ensureUtility method but as it turns
out it failes with

...
  Module szscreen.app, line 339, in __init__
    'WorkflowUtility', WorkflowUtility, 'wfu')
  Module zope.app.appsetup.bootstrap, line 66, in ensureUtility
    name, **kw
  Module zope.app.appsetup.bootstrap, line 74, in addConfigureUtility
    utility_name = addUtility(root_folder, utility_type, utility_factory, **kw)
  Module zope.app.appsetup.bootstrap, line 83, in addUtility
    package = getSiteManagerDefault(root_folder)
  Module zope.app.appsetup.bootstrap, line 105, in getSiteManagerDefault
    package = traverse(root_folder, package_name)
  Module zope.app.traversing.api, line 96, in traverse
    return traverser.traverse(path, request=request)
  Module zope.app.traversing.adapters, line 120, in traverse
    curr = IPhysicallyLocatable(self.context).getRoot()
  Module zope.app.location.traversing, line 90, in getRoot
    raise TypeError("Not enough context to determine location root")
TypeError: Not enough context to determine location root

when it checks the existence of the utility it uses
  sm = root_folder.getSiteManager()
but when it wants to add the non existing utility
  package = getSiteManagerDefault(root_folder)
which in turn wants to traverse like this
  package_name = '/++etc++site/default'
  package = traverse(root_folder, package_name)

Is there any way to easily solve the task?

Excerpt from szscreen.app:

class IApplication(IReadContainer, IPossibleSite, IAttributeAnnotatable):
      ""

class Application(Persistent, SampleContainer, SiteManagerContainer):

        implements(IApplication)
        
        def __init__(self):
                SampleContainer.__init__(self)
                
                sm = LocalSiteManager(self)
                self.setSiteManager(sm)

                ...
                
                ensureUtility(self, IWorkflowUtility,
                        'WorkflowUtility', WorkflowUtility, 'wfu')

-- 
Best regards,
 Adam                          mailto:[EMAIL PROTECTED]
--
Quote of the day:
I do not think there is any other quality so essential to success of
any kind as the quality of perseverance.  It overcomes almost
everything, even nature.
(John D. Rockefeller)

_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to