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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)