Ejemplo n.º 1
0
    def upgrade(self, root):
        # Convert Members folder
        root.manage_renameObject('Members', 'OldMembers')
        root.manage_addProduct['BTreeFolder2'].manage_addBTreeFolder('Members')
        for identifier, member in root.OldMembers.objectItems():
            if identifier not in root.Members.objectIds():
                root.Members._setObject(identifier, aq_base(member))
        root.manage_delObjects(['OldMembers'])

        # Register services
        sm = root.getSiteManager()
        if not IMemberService.providedBy(root.service_members):
            root.manage_delObjects(['service_members'])
            if extensionRegistry.get_extension('silva.pas.base') is not None:
                from silva.pas.base.subscribers import configure_service

                factory = root.manage_addProduct['silva.pas.base']
                factory.manage_addMemberService()
                configure_service(root, None)
            else:
                factory = root.manage_addProduct['Silva']
                factory.manage_addSimpleMemberService()
        else:
            sm.registerUtility(root.service_members, IMemberService)
        container_policy = root.service_containerpolicy
        if hasattr(aq_base(container_policy), '_policies'):
            container_policy._ContainerPolicyRegistry__policies = dict(
                container_policy._policies)
            delattr(container_policy, '_policies')
        sm.registerUtility(
            root.service_containerpolicy, IContainerPolicyService)
        if root._getOb('service_subscriptions', None) is not None:
            from silva.app.subscriptions.interfaces import ISubscriptionService
            sm.registerUtility(
                root.service_subscriptions, ISubscriptionService)
            template_ids = root.service_subscriptions.objectIds()
            root.service_subscriptions.manage_delObjects(template_ids)
            # This trigger a reconfiguration of the service.
            notify(ObjectCreatedEvent(root.service_subscriptions))
        if root._getOb('service_news', None) is not None:
            from silva.app.news.interfaces import IServiceNews
            sm.registerUtility(root.service_news, IServiceNews)
        if root._getOb('service_find', None) is not None:
            from Products.SilvaFind.interfaces import IFindService
            sm.registerUtility(root.service_find, IFindService)
        if root._getOb('service_secret', None) is None:
            factory = root.manage_addProduct['silva.core.services']
            factory.manage_addSecretService()
        if root._getOb('service_subscriptions_mailhost', None) is not None:
            root.manage_renameObject(
                'service_subscriptions_mailhost',
                'service_mailhost')

        if hasattr(aq_base(root), '__initialization__'):
            delattr(root, '__initialization__')
        return root
Ejemplo n.º 2
0
        def install_ref_service():
            from silva.core.references.service import configure_service

            factory.manage_addReferenceService('service_references')
            configure_service(root.service_references)