Beispiel #1
0
 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())
Beispiel #2
0
 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())
Beispiel #3
0
 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)
Beispiel #4
0
 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
Beispiel #5
0
 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())
Beispiel #7
0
    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 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)
Beispiel #10
0
 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,
     )
Beispiel #11
0
 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
Beispiel #12
0
 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