def installParcel(parcel, version=None): main = schema.ns('osaf.views.main', parcel) dispatchHook = p2pDispatchHook.update(parcel, 'p2pDispatchHook', blockName='p2pDispatchHook') # Add an event for p2p subscribing to collections subscribeEvent = BlockEvent.update(parcel, 'SubscribeEvent', blockName='SubscribeEvent', dispatchEnum='SendToBlockByReference', destinationBlockReference=dispatchHook) # Add an event for managing p2p access to collections accessEvent = BlockEvent.update(parcel, 'AccessEvent', blockName='AccessEvent', dispatchEnum='SendToBlockByReference', destinationBlockReference=dispatchHook) # Add an event for p2p login loginEvent = BlockEvent.update(parcel, 'LoginEvent', blockName='LoginEvent', dispatchEnum='SendToBlockByReference', destinationBlockReference=dispatchHook) # Add a separator to the "Collection" menu ... MenuItem.update(parcel, 'menuSeparator', blockName='menuSeparator', menuItemKind='Separator', parentBlock=main.CollectionMenu) # ... and, below it, a menu item to p2p subscribe to a collection MenuItem.update(parcel, "SubscribeMenuItem", blockName="SubscribeMenuItem", title=_m_(u"Subscribe to a peer collection"), event=subscribeEvent, eventsForNamedLookup=[subscribeEvent], parentBlock=main.CollectionMenu) # ... and, below it, a menu item to manage p2p permissions to a collection MenuItem.update(parcel, "AccessMenuItem", blockName="AccessMenuItem", title=_m_(u"Manage peer access to a collection"), event=accessEvent, eventsForNamedLookup=[accessEvent], parentBlock=main.CollectionMenu) # Add a menu item to the File menu to login to a peer network MenuItem.update(parcel, "LoginMenuItem", blockName="LoginMenuItem", title=_m_(u"Login to a peer network"), event=loginEvent, eventsForNamedLookup=[loginEvent], parentBlock=main.FileMenu) PeriodicTask.update(parcel, "loginTask", invoke="p2p.LoginTask", interval=timedelta(days=1), run_at_startup=True) AllGroup.update(parcel, "all", name="All")