Beispiel #1
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 #2
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 #3
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 #4
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 #5
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