Ejemplo n.º 1
0
def get_related_feeds(actor, project=None, extra_receivers=[], team_ids=[]):
    # FIXME: team_ids->team_id, 貌似没看到 team_ids 的需求
    ''' user_timeline of actor, actor's followers, project owner,
        project's watchers, extra_receivers;
        team_timeline of project related team, team_ids;
        public_timeline;
        user_profile_timeline of actor '''
    followers = User(actor).get_followers() if actor else []
    proj_users = []
    if project:
        proj_users += [u.username for u in project.get_watch_users()]
        proj_users.append(project.owner.username)
    users = filter(
        None,
        list(set([actor] + followers + proj_users + list(extra_receivers))))
    feeds = [get_user_inbox(user) for user in users]
    if project:
        rls = TeamProjectRelationship.gets(project_id=project.id)
        feeds.extend([get_team_feed(rl.team_id) for rl in rls])
    if team_ids:
        feeds.extend([get_team_feed(id) for id in team_ids])
    feeds.append(get_public_feed())
    if actor:
        feeds.append(get_user_feed(actor))
    return feeds
Ejemplo n.º 2
0
 def get_related_team_feeds(self):
     ''' team_timeline of project related team, team_ids '''
     project = self._project
     team_id = {self._team_id} if self._team_id else set()
     if project:
         rls = TeamProjectRelationship.gets(project_id=project.id)
         related_team_ids = [rl.team_id for rl in rls]
     else:
         related_team_ids = []
     team_ids = team_id | set(related_team_ids)
     return [get_team_feed(t) for t in team_ids]
Ejemplo n.º 3
0
 def get_related_team_feeds(self):
     ''' team_timeline of project related team, team_ids '''
     project = self._project
     team_id = {self._team_id} if self._team_id else set()
     if project:
         rls = TeamProjectRelationship.gets(project_id=project.id)
         related_team_ids = [rl.team_id for rl in rls]
     else:
         related_team_ids = []
     team_ids = team_id | set(related_team_ids)
     return [get_team_feed(t) for t in team_ids]
Ejemplo n.º 4
0
Archivo: feed.py Proyecto: zhmch/code
def get_related_feeds(actor, project=None, extra_receivers=[], team_ids=[]):
    # FIXME: team_ids->team_id, 貌似没看到 team_ids 的需求
    """ user_timeline of actor, actor's followers, project owner,
        project's watchers, extra_receivers;
        team_timeline of project related team, team_ids;
        public_timeline;
        user_profile_timeline of actor """
    followers = User(actor).get_followers() if actor else []
    proj_users = []
    if project:
        proj_users += [u.username for u in project.get_watch_users()]
        proj_users.append(project.owner.username)
    users = filter(None, list(set([actor] + followers + proj_users + list(extra_receivers))))
    feeds = [get_user_inbox(user) for user in users]
    if project:
        rls = TeamProjectRelationship.gets(project_id=project.id)
        feeds.extend([get_team_feed(rl.team_id) for rl in rls])
    if team_ids:
        feeds.extend([get_team_feed(id) for id in team_ids])
    feeds.append(get_public_feed())
    if actor:
        feeds.append(get_user_feed(actor))
    return feeds