Example #1
0
def installParcel(parcel, version=None):

    blocks = schema.ns('osaf.framework.blocks', parcel)
    main   = schema.ns('osaf.views.main', parcel)

    # Add an event for creating new EVDB collections
    NewEVDBCollectionEvent = AddEVDBCollectionEvent.update(
        parcel, 'NewEVDBCollectionEvent',
        blockName = 'newEVDBCollectionEvent')

    # Add a separator to the "Experimental" menu ...
    evdbMenu = blocks.Menu.update(parcel, 'EVDBDemoMenu',
                                  blockName = 'EVDBDemoMenu',
                                  title = _(u'&EVDB'),
                                  helpString = _(u'Download EVDB Events'),
                                  childrenBlocks = [ ],
                                  parentBlock = main.ExperimentalMenu)

    # ... and, below it, a menu item to subscribe to an EVDB
    # calendar.
    blocks.MenuItem.update(parcel, "NewEVDBCollection",
        blockName = "NewEVDBCollectionMenu",
        title = _(u"&Subscribe to EVDB calendar..."),
        event = NewEVDBCollectionEvent,
        eventsForNamedLookup = [NewEVDBCollectionEvent],
        parentBlock = evdbMenu,
    )

    # The periodic task that sets the EVDB's API key
    LicenseTask.update(parcel, "licenseTask",
                       run_at_startup=True,
                       interval=timedelta(days=1))
def installParcel(parcel, version=None):

    blocks = schema.ns('osaf.framework.blocks', parcel)
    main = schema.ns('osaf.views.main', parcel)

    # Add an event for creating new EVDB collections
    NewEVDBCollectionEvent = AddEVDBCollectionEvent.update(
        parcel, 'NewEVDBCollectionEvent', blockName='newEVDBCollectionEvent')

    # Add a separator to the "Experimental" menu ...
    evdbMenu = blocks.Menu.update(parcel,
                                  'EVDBDemoMenu',
                                  blockName='EVDBDemoMenu',
                                  title=_(u'&EVDB'),
                                  helpString=_(u'Download EVDB Events'),
                                  childrenBlocks=[],
                                  parentBlock=main.ExperimentalMenu)

    # ... and, below it, a menu item to subscribe to an EVDB
    # calendar.
    blocks.MenuItem.update(
        parcel,
        "NewEVDBCollection",
        blockName="NewEVDBCollectionMenu",
        title=_(u"&Subscribe to EVDB calendar..."),
        event=NewEVDBCollectionEvent,
        eventsForNamedLookup=[NewEVDBCollectionEvent],
        parentBlock=evdbMenu,
    )

    # The periodic task that sets the EVDB's API key
    LicenseTask.update(parcel,
                       "licenseTask",
                       run_at_startup=True,
                       interval=timedelta(days=1))
def installParcel(parcel, oldVersion=None):
    """
    Creates Items that live in the initial repository. 

    Run at repository buildtime. 
    """

    # A KindCollection of all FlickPhoto kinds. The flickrIDIndex is used to
    # lookup photos by flickrID quickly.
    flickrPhotosCollection = KindCollection.update(
        parcel,
        'flickrPhotosCollection',
        kind=FlickrPhotoMixin.getKind(parcel.itsView),
        recursive=True)

    if not flickrPhotosCollection.hasIndex('flickrIDIndex'):
        flickrPhotosCollection.addIndex('flickrIDIndex',
                                        'attribute',
                                        attribute='flickrID',
                                        compare="__cmp__")

    # A NewFlickrCollectionEvent that adds a "Owner" collection to the sidebar
    addFlickrCollectionByOwnerEvent = AddFlickrCollectionEvent.update(
        parcel,
        'addFlickrCollectionByOwnerEvent',
        blockName='addFlickrCollectionByOwnerEvent',
        collectionType='Owner')

    # A NewFlickrCollectionEvent that adds a "Tag" collection to the sidebar
    addFlickrCollectionByTagEvent = AddFlickrCollectionEvent.update(
        parcel,
        'addFlickrCollectionByTagEvent',
        blockName='addFlickrCollectionByTagEvent',
        collectionType='Tag')

    handler = FlickrHandler.update(parcel,
                                   'flickrHandler',
                                   blockName='_flickr_flickrHandler')

    # A BlockEvent that tickles the background update task to run
    # Add an event for managing p2p access to collections
    updateEvent = BlockEvent.update(parcel,
                                    None,
                                    blockName='_flickr_UpdateFlickrNow',
                                    dispatchEnum='SendToBlockByReference',
                                    destinationBlockReference=handler)

    # Add menu items to Chandler
    demoMenu = schema.ns('osaf.views.main', parcel).ExperimentalMenu

    flickrMenu = Menu.update(parcel,
                             'FlickrDemoMenu',
                             blockName='FlickrDemoMenu',
                             title=_(u'F&lickr'),
                             helpString=_(u'Download Flickr photos'),
                             childrenBlocks=[],
                             parentBlock=demoMenu)

    MenuItem.update(parcel,
                    'NewFlickrCollectionByOwner',
                    blockName='NewFlickrCollectionByOwnerMenuItem',
                    title=_(u'Create new Flickr collection by &Owner...'),
                    event=addFlickrCollectionByOwnerEvent,
                    eventsForNamedLookup=[addFlickrCollectionByOwnerEvent],
                    parentBlock=flickrMenu)

    MenuItem.update(parcel,
                    'NewFlickrCollectionByTag',
                    blockName='NewFlickrCollectionByTagMenuItem',
                    title=_(u'Create new Flickr collection by &Tag...'),
                    event=addFlickrCollectionByTagEvent,
                    eventsForNamedLookup=[addFlickrCollectionByTagEvent],
                    parentBlock=flickrMenu)

    MenuItem.update(parcel,
                    'UpdateFlickrNow',
                    blockName='UpdateFlickrNowMenuItem',
                    title=_(u'&Update Flickr collections'),
                    event=updateEvent,
                    eventsForNamedLookup=[updateEvent],
                    parentBlock=flickrMenu)

    # The periodic task that adds new photos to the collection in the background
    UpdateTask.update(parcel,
                      'updateTask',
                      run_at_startup=True,
                      interval=timedelta(minutes=60))

    # The periodic task that sets the Flickr's API key
    LicenseTask.update(parcel,
                       "licenseTask",
                       run_at_startup=True,
                       interval=timedelta(days=1))

    # The detail view used to display a flickrPhoto
    blocks = schema.ns('osaf.framework.blocks', parcel)
    detail = schema.ns('osaf.views.detail', parcel)

    detail.makeSubtree(parcel, FlickrPhoto, [
        detail.makeArea(
            parcel,
            'AuthorArea',
            position=0.6,
            childBlocks=[
                detail.makeLabel(parcel, _(u'author'), borderTop=4),
                detail.makeSpacer(parcel, width=6),
                detail.makeEditor(parcel,
                                  'AuthorAttribute',
                                  viewAttribute=u'owner',
                                  presentationStyle={'format': 'static'}),
            ]).install(parcel)
    ])
Example #4
0
def installParcel(parcel, oldVersion=None):
    """
    Creates Items that live in the initial repository. 

    Run at repository buildtime. 
    """

    # A KindCollection of all FlickPhoto kinds. The flickrIDIndex is used to
    # lookup photos by flickrID quickly.
    flickrPhotosCollection = KindCollection.update(
        parcel, 'flickrPhotosCollection',
        kind = FlickrPhotoMixin.getKind(parcel.itsView),
        recursive = True)

    if not flickrPhotosCollection.hasIndex('flickrIDIndex'):
        flickrPhotosCollection.addIndex('flickrIDIndex', 'attribute',
                                        attribute='flickrID', compare="__cmp__")

    # A NewFlickrCollectionEvent that adds a "Owner" collection to the sidebar
    addFlickrCollectionByOwnerEvent = AddFlickrCollectionEvent.update(
        parcel, 'addFlickrCollectionByOwnerEvent',
        blockName = 'addFlickrCollectionByOwnerEvent',
        collectionType = 'Owner')

    # A NewFlickrCollectionEvent that adds a "Tag" collection to the sidebar
    addFlickrCollectionByTagEvent = AddFlickrCollectionEvent.update(
        parcel, 'addFlickrCollectionByTagEvent',
        blockName = 'addFlickrCollectionByTagEvent',
        collectionType = 'Tag')

    handler = FlickrHandler.update(parcel, 'flickrHandler',
                                   blockName='_flickr_flickrHandler')

    # A BlockEvent that tickles the background update task to run
    # Add an event for managing p2p access to collections
    updateEvent = BlockEvent.update(parcel, None,
                                    blockName='_flickr_UpdateFlickrNow',
                                    dispatchEnum='SendToBlockByReference',
                                    destinationBlockReference=handler)

    # Add menu items to Chandler
    demoMenu = schema.ns('osaf.views.main', parcel).ExperimentalMenu

    flickrMenu = Menu.update(
        parcel, 'FlickrDemoMenu',
        blockName = 'FlickrDemoMenu',
        title = _(u'F&lickr'),
        helpString = _(u'Download Flickr photos'),
        childrenBlocks = [ ],
        parentBlock = demoMenu)

    MenuItem.update(
        parcel, 'NewFlickrCollectionByOwner',
        blockName = 'NewFlickrCollectionByOwnerMenuItem',
        title = _(u'Create new Flickr collection by &Owner...'),
        event = addFlickrCollectionByOwnerEvent,
        eventsForNamedLookup = [addFlickrCollectionByOwnerEvent],
        parentBlock = flickrMenu)
 
    MenuItem.update(
        parcel, 'NewFlickrCollectionByTag',
        blockName = 'NewFlickrCollectionByTagMenuItem',
        title = _(u'Create new Flickr collection by &Tag...'),
        event = addFlickrCollectionByTagEvent,
        eventsForNamedLookup = [addFlickrCollectionByTagEvent],
        parentBlock = flickrMenu)

    MenuItem.update(
        parcel, 'UpdateFlickrNow',
        blockName = 'UpdateFlickrNowMenuItem',
        title = _(u'&Update Flickr collections'),
        event = updateEvent,
        eventsForNamedLookup = [updateEvent],
        parentBlock = flickrMenu)

    # The periodic task that adds new photos to the collection in the background
    UpdateTask.update(parcel, 'updateTask',
                      run_at_startup=True,
                      interval=timedelta(minutes=60))

    # The periodic task that sets the Flickr's API key
    LicenseTask.update(parcel, "licenseTask",
                       run_at_startup=True,
                       interval=timedelta(days=1))

    # The detail view used to display a flickrPhoto
    blocks = schema.ns('osaf.framework.blocks', parcel)
    detail = schema.ns('osaf.views.detail', parcel)

    detail.makeSubtree(parcel, FlickrPhoto, [
        detail.makeArea(parcel, 'AuthorArea',
                        position=0.6,
                        childBlocks=[
                            detail.makeLabel(parcel, _(u'author'), borderTop=4),
                            detail.makeSpacer(parcel, width=6),
                            detail.makeEditor(parcel, 'AuthorAttribute',
                                              viewAttribute=u'owner',
                                              presentationStyle={'format': 'static'}
                                          ),
                        ]).install(parcel)
    ])