def prepare_context(self, context): full_timeline = g.director.get_timeline( self.user, page=0, limit=100, actor_only=True, ) filtered_timeline = list( islice(filter(perm_check(c.user), full_timeline), 0, 8)) for activity in filtered_timeline: # Get the project for the activity.obj so we can use it in the # template. Expunge first so Ming doesn't try to flush the attr # we create to temporarily store the project. # # The get_activity_object() calls are cheap, pulling from # the session identity map instead of mongo since identical # calls are made by perm_check() above. session(activity).expunge(activity) activity_obj = get_activity_object(activity.obj) activity.obj.project = getattr(activity_obj, 'project', None) context.update({ 'follow_toggle': W.follow_toggle, 'following': g.director.is_connected(c.user, self.user), 'timeline': filtered_timeline, 'activity_app': self.activity_app, }) g.register_js('activity_js/follow.js') return context
def prepare_context(self, context): full_timeline = g.director.get_timeline( self.user, page=0, limit=100, actor_only=False, ) filtered_timeline = list( islice(filter(perm_check(c.user), full_timeline), 0, 8)) for activity in filtered_timeline: # Get the project for the activity.obj so we can use it in the # template. Expunge first so Ming doesn't try to flush the attr # we create to temporarily store the project. # # The get_activity_object() calls are cheap, pulling from # the session identity map instead of mongo since identical # calls are made by perm_check() above. session(activity).expunge(activity) activity_obj = get_activity_object(activity.obj) activity.obj.project = getattr(activity_obj, 'project', None) context['timeline'] = filtered_timeline context['activity_app'] = self.activity_app return context
def prepare_context(self, context): full_timeline = g.director.get_timeline( self.user, page=0, limit=100, actor_only=True, ) filtered_timeline = list(islice(ifilter(perm_check(c.user), full_timeline), 0, 8)) for activity in filtered_timeline: # Get the project for the activity.obj so we can use it in the # template. Expunge first so Ming doesn't try to flush the attr # we create to temporarily store the project. # # The get_activity_object() calls are cheap, pulling from # the session identity map instead of mongo since identical # calls are made by perm_check() above. session(activity).expunge(activity) activity_obj = get_activity_object(activity.obj) activity.obj.project = getattr(activity_obj, 'project', None) context.update({ 'follow_toggle': W.follow_toggle, 'following': g.director.is_connected(c.user, self.user), 'timeline': filtered_timeline, 'activity_app': self.activity_app, }) g.register_js('activity_js/follow.js') return context
def _get_activities_data(self, **kw): activity_enabled = config.get('activitystream.enabled', False) activity_enabled = request.cookies.get( 'activitystream.enabled', activity_enabled) activity_enabled = asbool(activity_enabled) if not activity_enabled: raise exc.HTTPNotFound() c.follow_toggle = W.follow_toggle c.page_list = W.page_list if c.project.is_user_project: followee = c.project.user_project_of actor_only = followee != c.user else: followee = c.project actor_only = False following = g.director.is_connected(c.user, followee) timeline = g.director.get_timeline(followee, page=kw.get('page', 0), limit=kw.get('limit', 100), actor_only=actor_only, filter_func=perm_check(c.user)) page = asint(kw.get('page', 0)) limit = asint(kw.get('limit', 100)) return dict( followee=followee, following=following, timeline=timeline, page=page, limit=limit, has_more=len(timeline) == limit)
def prepare_context(self, context): context.update({ 'user': self.user, 'follow_toggle': W.follow_toggle, 'following': g.director.is_connected(c.user, self.user), 'timeline': g.director.get_timeline( self.user, page=0, limit=5, actor_only=True, filter_func=perm_check(c.user)), 'activity_app': self.activity_app, }) g.register_js('activity_js/follow.js') return context
def _get_activities_data(self, **kw): activity_enabled = asbool(config.get('activitystream.enabled', False)) if not activity_enabled: raise exc.HTTPNotFound() c.follow_toggle = W.follow_toggle c.page_list = W.page_list if c.project.is_user_project: followee = c.project.user_project_of actor_only = followee != c.user else: followee = c.project actor_only = False following = g.director.is_connected(c.user, followee) limit, page = h.paging_sanitizer(kw.get('limit', 100), kw.get('page', 0)) extra_limit = limit # get more in case perm check filters some out if page == 0 and limit <= 10: extra_limit = limit * 20 timeline = g.director.get_timeline(followee, page, limit=extra_limit, actor_only=actor_only) filtered_timeline = list( islice(filter(perm_check(c.user), timeline), 0, limit)) if extra_limit == limit: # if we didn't ask for extra, then we expect there's more if we got all we asked for has_more = len(timeline) == limit else: # if we did ask for extra, check filtered result has_more = len(filtered_timeline) == limit return dict(followee=followee, following=following, timeline=filtered_timeline, page=page, limit=limit, has_more=has_more, actor_only=actor_only)
def _get_activities_data(self, **kw): activity_enabled = asbool(config.get('activitystream.enabled', False)) if not activity_enabled: raise exc.HTTPNotFound() c.follow_toggle = W.follow_toggle c.page_list = W.page_list if c.project.is_user_project: followee = c.project.user_project_of actor_only = followee != c.user else: followee = c.project actor_only = False following = g.director.is_connected(c.user, followee) limit, page = h.paging_sanitizer(kw.get('limit', 100), kw.get('page', 0)) extra_limit = limit # get more in case perm check filters some out if page == 0 and limit <= 10: extra_limit = limit * 20 timeline = g.director.get_timeline(followee, page, limit=extra_limit, actor_only=actor_only) filtered_timeline = list(islice(ifilter(perm_check(c.user), timeline), 0, limit)) if extra_limit == limit: # if we didn't ask for extra, then we expect there's more if we got all we asked for has_more = len(timeline) == limit else: # if we did ask for extra, check filtered result has_more = len(filtered_timeline) == limit return dict( followee=followee, following=following, timeline=filtered_timeline, page=page, limit=limit, has_more=has_more, actor_only=actor_only)
def index(self, **kw): activity_enabled = config.get('activitystream.enabled', False) activity_enabled = request.cookies.get('activitystream.enabled', activity_enabled) activity_enabled = asbool(activity_enabled) if not activity_enabled: raise exc.HTTPNotFound() c.follow_toggle = W.follow_toggle if c.project.is_user_project: followee = c.project.user_project_of actor_only = followee != c.user else: followee = c.project actor_only = False following = g.director.is_connected(c.user, followee) timeline = g.director.get_timeline(followee, page=kw.get('page', 0), limit=kw.get('limit', 100), actor_only=actor_only, filter_func=perm_check(c.user)) return dict(followee=followee, following=following, timeline=timeline)
def prepare_context(self, context): full_timeline = g.director.get_timeline( self.user, page=0, limit=100, actor_only=False, ) filtered_timeline = list(islice(ifilter(perm_check(c.user), full_timeline), 0, 8)) for activity in filtered_timeline: # Get the project for the activity.obj so we can use it in the # template. Expunge first so Ming doesn't try to flush the attr # we create to temporarily store the project. # # The get_activity_object() calls are cheap, pulling from # the session identity map instead of mongo since identical # calls are made by perm_check() above. session(activity).expunge(activity) activity_obj = get_activity_object(activity.obj) activity.obj.project = getattr(activity_obj, 'project', None) context['timeline'] = filtered_timeline context['activity_app'] = self.activity_app return context