예제 #1
0
 def update_resource(self, resource):
     '''Perform an atomic update for an existing resource'''
     index = self.resources.index(resource)
     data = {'resources__{index}'.format(index=index): resource}
     self.update(**data)
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #2
0
    def add_badge(self, kind):
        '''Perform an atomic prepend for a new badge'''
        badge = self.get_badge(kind)
        if badge:
            return badge
        if kind not in getattr(self, '__badges__', {}):
            msg = 'Unknown badge type for {model}: {kind}'
            raise db.ValidationError(
                msg.format(model=self.__class__.__name__, kind=kind))
        badge = Badge(kind=kind)
        if current_user.is_authenticated:
            badge.created_by = current_user.id

        self.update(__raw__={
            '$push': {
                'badges': {
                    '$each': [badge.to_mongo()],
                    '$position': 0
                }
            }
        })
        self.reload()
        post_save.send(self.__class__, document=self)
        on_badge_added.send(self, kind=kind)
        return self.get_badge(kind)
예제 #3
0
파일: models.py 프로젝트: odtvince/udata
    def add_badge(self, kind):
        '''Perform an atomic prepend for a new badge'''
        badge = self.get_badge(kind)
        if badge:
            return badge
        if kind not in getattr(self, '__badges__', {}):
            msg = 'Unknown badge type for {model}: {kind}'
            raise db.ValidationError(msg.format(model=self.__class__.__name__,
                                                kind=kind))
        badge = Badge(kind=kind)
        if current_user.is_authenticated:
            badge.created_by = current_user.id

        self.update(__raw__={
            '$push': {
                'badges': {
                    '$each': [badge.to_mongo()],
                    '$position': 0
                }
            }
        })
        self.reload()
        post_save.send(self.__class__, document=self)
        on_badge_added.send(self, kind=kind)
        return self.get_badge(kind)
예제 #4
0
파일: models.py 프로젝트: odtvince/udata
 def update_resource(self, resource):
     '''Perform an atomic update for an existing resource'''
     index = self.resources.index(resource)
     data = {
         'resources__{index}'.format(index=index): resource
     }
     self.update(**data)
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #5
0
파일: models.py 프로젝트: anukat2015/udata
 def remove_badge(self, kind):
     '''Perform an atomic removal for a given badge'''
     self.update(__raw__={
         '$pull': {
             'badges': {'kind': kind}
         }
     })
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #6
0
파일: models.py 프로젝트: grouan/udata
 def remove_badge(self, badge):
     '''Perform an atomic removal for a given badge'''
     self.update(__raw__={
         '$pull': {
             'badges': badge.to_mongo()
         }
     })
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #7
0
파일: models.py 프로젝트: noirbizarre/udata
 def add_resource(self, resource):
     '''Perform an atomic prepend for a new resource'''
     self.update(__raw__={
         '$push': {
             'resources': {
                 '$each': [resource.to_mongo()],
                 '$position': 0
             }
         }
     })
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #8
0
파일: models.py 프로젝트: javanna2000/udata
 def add_badge(self, badge):
     '''Perform an atomic prepend for a new badge'''
     self.update(__raw__={
         '$push': {
             'badges': {
                 '$each': [badge.to_mongo()],
                 '$position': 0
             }
         }
     })
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #9
0
파일: models.py 프로젝트: grouan/udata
 def add_badge(self, badge):
     '''Perform an atomic prepend for a new badge'''
     self.update(__raw__={
         '$push': {
             'badges': {
                 '$each': [badge.to_mongo()],
                 '$position': 0
             }
         }
     })
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #10
0
파일: models.py 프로젝트: simudream/udata
 def add_resource(self, resource):
     '''Perform an atomic prepend for a new resource'''
     self.update(__raw__={
         '$push': {
             'resources': {
                 '$each': [resource.to_mongo()],
                 '$position': 0
             }
         }
     })
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #11
0
파일: models.py 프로젝트: opendatalu/udata
    def add_badge(self, kind):
        """Perform an atomic prepend for a new badge"""
        badge = self.get_badge(kind)
        if badge:
            return badge
        if kind not in getattr(self, "__badges__", {}):
            msg = "Unknown badge type for {model}: {kind}"
            raise db.ValidationError(msg.format(model=self.__class__.__name__, kind=kind))
        badge = Badge(kind=kind)
        if current_user.is_authenticated:
            badge.created_by = current_user.id

        self.update(__raw__={"$push": {"badges": {"$each": [badge.to_mongo()], "$position": 0}}})
        self.reload()
        post_save.send(self.__class__, document=self)
        return self.get_badge(kind)
예제 #12
0
파일: models.py 프로젝트: opendatalu/udata
 def remove_badge(self, kind):
     """Perform an atomic removal for a given badge"""
     self.update(__raw__={"$pull": {"badges": {"kind": kind}}})
     self.reload()
     post_save.send(self.__class__, document=self)
예제 #13
0
 def remove_badge(self, kind):
     '''Perform an atomic removal for a given badge'''
     self.update(__raw__={'$pull': {'badges': {'kind': kind}}})
     self.reload()
     on_badge_removed.send(self, kind=kind)
     post_save.send(self.__class__, document=self)