def update(self): super(Favorite, self).update() if self.favorite is None: self.favorite = IFavoriting(self.context) if self.is_manager is None: self.pm = getToolByName(self.context, 'portal_membership') self.is_manager = self.pm.checkPermission(ViewManagementScreens, self.context) self.can_favorite = self.pm.checkPermission( DoFavorite, self.context)
def test_project_LocalRoles(self): portal = self.layer['portal'] app = self.layer['app'] setRoles(portal, TEST_USER_ID, ('Manager', )) membership = getToolByName(portal, 'portal_membership') provideAdapter(AssignRoles) portal.invokeFactory('emc.memberArea.workspace', 'work1') portal['work1'].invokeFactory('emc.memberArea.messagebox', 'folder1') portal['work1']['folder1'].invokeFactory('emc.memberArea.outputbox', 'ou1') portal['work1']['folder1']['ou1'].invokeFactory( 'emc.memberArea.message', 'me1') message = portal['work1']['folder1']['ou1']['me1'] import transaction transaction.commit() # alsoProvides(self.request,IFavoriteAdapter) self.assertEqual(IFavoriting(message).number(), 0) self.assertFalse(IFavoritable.providedBy(message)) applyMarkers(message, ObjectCreatedEvent(message)) # event.notify(ObjectCreatedEvent(message)) self.assertTrue(IFavoritable.providedBy(message)) event.notify(FavoriteEvent(message)) self.assertEqual(IFavoriting(message).number(), 1)
def UnFavoriteAnswer(obj,event): """del the answer from the favorite""" mp = getToolByName(obj,'portal_membership') userobject = mp.getAuthenticatedMember() userid = userobject.getId() favoritelist = list(userobject.getProperty('myfavorite')) # fav = mp.getHomeFolder(userid)['workspace']['favorite'] # favoritelist = list(getattr(fav,'myfavorite',[])) uuid = IUUID(obj,None) if uuid == None:return if uuid in favoritelist: favoritelist.remove(uuid) userobject.setProperties(myfavorite=favoritelist) # setattr(fav,'myfavorite',favoritelist) ada = IFavoriting(obj) if not ada.favavailable(userid): ada.delfavorite(userid)
def delFavorite(obj,event): """判断当前答案是否被收藏,当对象被删除时,收藏也应删除""" try: ada = IFavoriting(obj) except: return useridlist = ada.favorite if len(useridlist) == 0: return mp = getToolByName(obj, 'portal_membership') for userid in useridlist: fav = mp.getHomeFolder(userid)['workspace']['favorite'] favoritelist = list(getattr(fav,'myfavorite',[])) uuid = IUUID(obj) # """删除用户收藏到答案""" if uuid in favoritelist: favoritelist.remove(uuid) setattr(fav,'myfavorite',favoritelist)
def DoFavorite(obj,event): """add the obj to my favorite""" mp = getToolByName(obj,'portal_membership') userobject = mp.getAuthenticatedMember() userid = userobject.getId() favoritelist = list(userobject.getProperty('myfavorite')) # import pdb # pdb.set_trace() # fav = mp.getHomeFolder(userid)['workspace']['favorite'] # favoritelist = list(getattr(fav,'myfavorite',[])) uuid = IUUID(obj,None) if uuid == None:return if not uuid in favoritelist: favoritelist.append(uuid) userobject.setProperties(myfavorite=favoritelist) # setattr(fav,'myfavorite',favoritelist) # fav.reindexObject() ada = IFavoriting(obj) if ada.favavailable(userid): ada.addfavorite(userid)