def wouldCreateNotification(self, discussion_id, verb, object): parentWouldCreate = super(NotificationSubscriptionFollowSyntheses, self).wouldCreateNotification( discussion_id, verb, object) return parentWouldCreate and (verb == CrudVerbs.CREATE) and isinstance( object, SynthesisPost) and discussion_id == object.get_discussion_id()
def wouldCreateNotification(self, discussion_id, verb, object): parentWouldCreate = super(NotificationSubscriptionFollowAllMessages, self).wouldCreateNotification( discussion_id, verb, object) return (parentWouldCreate and (verb in (CrudVerbs.CREATE, CrudVerbs.UPDATE)) and isinstance(object, Post) and object.publication_state == PublicationStates.PUBLISHED and discussion_id == object.get_discussion_id())
def wouldCreateNotification(self, discussion_id, verb, object): parentWouldCreate = super(NotificationSubscriptionFollowOwnMessageDirectReplies, self).wouldCreateNotification(discussion_id, verb, object) return ( parentWouldCreate and (verb == CrudVerbs.CREATE) and isinstance(object, Post) and discussion_id == object.get_discussion_id() and object.parent is not None and object.parent.creator == self.user )
def findApplicableInstances(cls, discussion_id, verb, object, user=None): """ Returns all subscriptions that would fire on the object, and verb given This naive implementation instanciates every ACTIVE subscription for every user, and calls "would fire" for each. It is expected that most subclasses will override this with a more optimal implementation """ applicable_subscriptions = [] subscriptionsQuery = cls.default_db.query(cls) subscriptionsQuery = subscriptionsQuery.filter(cls.status==NotificationSubscriptionStatus.ACTIVE); subscriptionsQuery = subscriptionsQuery.filter(cls.discussion_id==discussion_id); if user: subscriptionsQuery = subscriptionsQuery.filter(cls.user==user) #print "findApplicableInstances(called) with discussion_id=%s, verb=%s, object=%s, user=%s"%(discussion_id, verb, object, user) #print repr(subscriptionsQuery.all()) for subscription in subscriptionsQuery: if(subscription.wouldCreateNotification(object.get_discussion_id(), verb, object)): applicable_subscriptions.append(subscription) return applicable_subscriptions
def wouldCreateNotification(self, discussion_id, verb, object): return discussion_id == object.get_discussion_id( ) and self.user.is_participant(discussion_id)
def wouldCreateNotification(self, discussion_id, verb, object): discussion = Discussion.get(object.get_discussion_id()) return discussion_id == object.get_discussion_id() and discussion in self.user.participant_in_discussion