def __call__(self): """ """ context = self.context response = context.REQUEST.response homeFolder=context.portal_membership.getHomeFolder() view_url = context.absolute_url() if not homeFolder: context.plone_utils.addPortalMessage( _(u'Can\'t access home folder. Favorite is not added.'), 'error') return response.redirect(view_url) if not base_hasattr(homeFolder, 'Favorites'): homeFolder.invokeFactory( 'Folder', id='Favorites', title='Favorites') addable_types = ['Link'] favs = homeFolder.Favorites if base_hasattr(favs, 'setConstrainTypesMode'): favs.setConstrainTypesMode(1) favs.setImmediatelyAddableTypes(addable_types) favs.setLocallyAllowedTypes(addable_types) favs.manage_addProperty( 'layout', 'favorites_view', type='string') targetFolder = homeFolder.Favorites new_id='fav_' + str(int(context.ZopeTime())) myPath=context.portal_url.getRelativeUrl(context) fav_id = targetFolder.invokeFactory( 'Link', id=new_id, title=context.TitleOrId(), remote_url=myPath) if fav_id: favorite = getattr(targetFolder, fav_id, None) else: favorite = getattr(targetFolder, new_id, None) if favorite: favorite.reindexObject() msg = _( u'${title} has been added to your Favorites.', mapping={ u'title': context.title_or_id().decode('utf-8') or None}) context.plone_utils.addPortalMessage(msg) else: msg = _( u'There was a problem adding ${title} to your Favorites.', mapping={u'title': context.title_or_id().decode('utf-8')}) return response.redirect(view_url)
def title(self): return _(u"Favorites", default="Favorites")