def unsubscribe(self, user=None): from allura.model import Mailbox if user is None: user = c.user Mailbox.unsubscribe(user_id=user._id, project_id=self.app_config.project_id, app_config_id=self.app_config._id, artifact_index_id=self.index_id())
def unsubscribe(self, user=None): from allura.model import Mailbox if user is None: user = c.user Mailbox.unsubscribe( user_id=user._id, project_id=self.app_config.project_id, app_config_id=self.app_config._id, artifact_index_id=self.index_id())
def subscribe(self, user=None, topic=None, type='direct', n=1, unit='day'): from allura.model import Mailbox if user is None: user = c.user Mailbox.subscribe( user_id=user._id, project_id=self.app_config.project_id, app_config_id=self.app_config._id, artifact=self, topic=topic, type=type, n=n, unit=unit)
def subscribed(self, user=None, include_parents=True): from allura.model import Mailbox if user is None: user = c.user user_proj_app_q = dict(user_id=user._id, project_id=self.app_config.project_id, app_config_id=self.app_config._id) art_subscribed = Mailbox.subscribed(artifact=self, **user_proj_app_q) if art_subscribed: return True if include_parents: tool_subscribed = Mailbox.subscribed(**user_proj_app_q) if tool_subscribed: return True return False
def unsubscribe(self, user=None): """Unsubscribe ``user`` from the :class:`allura.model.notification.Mailbox` for this Artifact. :param user: :class:`allura.model.auth.User` If ``user`` is None, ``c.user`` will be unsubscribed. """ from allura.model import Mailbox if user is None: user = c.user Mailbox.unsubscribe( user_id=user._id, project_id=self.app_config.project_id, app_config_id=self.app_config._id, artifact_index_id=self.index_id())
def unsubscribe(self, user=None): """Unsubscribe ``user`` from the :class:`allura.model.notification.Mailbox` for this Artifact. :param user: :class:`allura.model.auth.User` If ``user`` is None, ``c.user`` will be unsubscribed. """ from allura.model import Mailbox if user is None: user = c.user Mailbox.unsubscribe(user_id=user._id, project_id=self.app_config.project_id, app_config_id=self.app_config._id, artifact_index_id=self.index_id())
def subscribe(self, user=None, topic=None, type='direct', n=1, unit='day'): """Subscribe ``user`` to the :class:`allura.model.notification.Mailbox` for this Artifact. :param user: :class:`allura.model.auth.User` If ``user`` is None, ``c.user`` will be subscribed. """ from allura.model import Mailbox if user is None: user = c.user Mailbox.subscribe( user_id=user._id, project_id=self.app_config.project_id, app_config_id=self.app_config._id, artifact=self, topic=topic, type=type, n=n, unit=unit)
def subscribed(self, user=None): from allura.model import Mailbox if user is None: user = c.user return Mailbox.subscribed( user_id=user._id, project_id=self.app_config.project_id, app_config_id=self.app_config._id, artifact=self, )
def filtered_by_subscription(self, tickets, project_id=None, app_config_id=None): p_id = project_id if project_id else c.project._id ac_id = app_config_id if app_config_id else c.app.config._id ticket_ids = tickets.keys() users = Mailbox.query.find(dict(project_id=p_id, app_config_id=ac_id)) users = [u.user_id for u in users] filtered = {} for uid in users: params = dict( user_id=uid, project_id=p_id, app_config_id=ac_id) if Mailbox.subscribed(**params): filtered[uid] = set(ticket_ids) # subscribed to entire tool, will see all changes continue for t_id, ticket in tickets.iteritems(): params.update({'artifact': ticket}) if Mailbox.subscribed(**params): if filtered.get(uid) is None: filtered[uid] = set() filtered[uid].add(t_id) return filtered
def filtered_by_subscription(self, tickets, project_id=None, app_config_id=None): p_id = project_id if project_id else c.project._id ac_id = app_config_id if app_config_id else c.app.config._id ticket_ids = tickets.keys() users = Mailbox.query.find(dict(project_id=p_id, app_config_id=ac_id)) users = [u.user_id for u in users] filtered = {} for uid in users: params = dict(user_id=uid, project_id=p_id, app_config_id=ac_id) if Mailbox.subscribed(**params): filtered[uid] = set( ticket_ids ) # subscribed to entire tool, will see all changes continue for t_id, ticket in tickets.iteritems(): params.update({'artifact': ticket}) if Mailbox.subscribed(**params): if filtered.get(uid) is None: filtered[uid] = set() filtered[uid].add(t_id) return filtered