Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)