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
def install_ref_service(): from silva.core.references.service import configure_service factory.manage_addReferenceService('service_references') configure_service(root.service_references)