def initializeArchetype(self, **kwargs): """ Set permissions so Carousel Banners can be added to this Block """ folder.ATFolder.initializeArchetype(self, **kwargs) # make sure Carousel banners are addable within the new folder addPermissionsForRole(self, 'Manager', ('Carousel: Add Carousel Banner',)) # make sure *only* Carousel banners are addable self.setConstrainTypesMode(1) self.setLocallyAllowedTypes(['CarouselBlockImage']) self.setImmediatelyAddableTypes(['CarouselBlockImage'])
def __call__(self): if hasattr(self.context.aq_base, CAROUSEL_ID): carousel = getattr(self.context, CAROUSEL_ID) else: pt = getToolByName(self.context, 'portal_types') newid = pt.constructContent( type_name='Folder', container=self.context, id='carousel', title='Carousel Banners' ) carousel = getattr(self.context, newid) # exclude the (Archetypes or Dexterity) folder from navigation if hasattr(aq_base(carousel), 'setExcludeFromNav'): carousel.setExcludeFromNav(True) elif hasattr(aq_base(carousel), 'exclude_from_nav'): carousel.exclude_from_nav = True # mark the new folder as a Carousel folder alsoProvides(carousel, ICarouselFolder) # make sure Carousel banners are addable within the new folder addPermissionsForRole(carousel, 'Manager', ('Carousel: Add Carousel Banner',)) addPermissionsForRole(carousel, 'Site Administrator', ('Carousel: Add Carousel Banner',)) addPermissionsForRole(carousel, 'Owner', ('Carousel: Add Carousel Banner',)) addPermissionsForRole(carousel, 'Contributor', ('Carousel: Add Carousel Banner',)) addPermissionsForRole(carousel, 'Editor', ('Carousel: Add Carousel Banner',)) # make sure *only* Carousel banners are addable aspect = ISelectableConstrainTypes(carousel) aspect.setConstrainTypesMode(1) aspect.setLocallyAllowedTypes(['Carousel Banner']) aspect.setImmediatelyAddableTypes(['Carousel Banner']) carousel.reindexObject() self.request.RESPONSE.redirect( carousel.absolute_url() + '/@@edit-carousel' )
def __call__(self): if hasattr(self.context.aq_base, CAROUSEL_ID): carousel = getattr(self.context, CAROUSEL_ID) else: pt = getToolByName(self.context, 'portal_types') newid = pt.constructContent(type_name='Folder', container=self.context, id='carousel', title='Carousel Banners') carousel = getattr(self.context, newid) # exclude the (Archetypes or Dexterity) folder from navigation if hasattr(aq_base(carousel), 'setExcludeFromNav'): carousel.setExcludeFromNav(True) elif hasattr(aq_base(carousel), 'exclude_from_nav'): carousel.exclude_from_nav = True # mark the new folder as a Carousel folder alsoProvides(carousel, ICarouselFolder) # make sure Carousel banners are addable within the new folder addPermissionsForRole(carousel, 'Manager', ('Carousel: Add Carousel Banner', )) addPermissionsForRole(carousel, 'Site Administrator', ('Carousel: Add Carousel Banner', )) # make sure *only* Carousel banners are addable aspect = ISelectableConstrainTypes(carousel) aspect.setConstrainTypesMode(1) aspect.setLocallyAllowedTypes(['Carousel Banner']) aspect.setImmediatelyAddableTypes(['Carousel Banner']) carousel.reindexObject() self.request.RESPONSE.redirect(carousel.absolute_url() + '/@@edit-carousel')
def __call__(self): if hasattr(self.context.aq_base, CAROUSEL_ID): carousel = getattr(self.context, CAROUSEL_ID) else: pt = getToolByName(self.context, 'portal_types') newid = pt.constructContent('Folder', self.context, 'carousel', title='Carousel Banners', excludeFromNav=True) carousel = getattr(self.context, newid) # mark the new folder as a Carousel folder alsoProvides(carousel, ICarouselFolder) # make sure Carousel banners are addable within the new folder addPermissionsForRole(carousel, 'Manager', ('Carousel: Add Carousel Banner',)) addPermissionsForRole(carousel, 'Site Administrator', ('Carousel: Add Carousel Banner',)) # make sure *only* Carousel banners are addable carousel.setConstrainTypesMode(1) carousel.setLocallyAllowedTypes(['Carousel Banner']) carousel.setImmediatelyAddableTypes(['Carousel Banner']) self.request.RESPONSE.redirect( carousel.absolute_url() + '/@@edit-carousel' )