def view_profile_collection(request): ctx = request.context view = request.GET.get('view', None) or ctx.get_default_view() or 'default' content = collection_view(request) if view != "id_only": discussion = ctx.get_instance_of_class(Discussion) if discussion: from assembl.models import Post, AgentProfile num_posts_per_user = \ AgentProfile.count_posts_in_discussion_all_profiles(discussion) for x in content: id = AgentProfile.get_database_id(x['@id']) if id in num_posts_per_user: x['post_count'] = num_posts_per_user[id] return content
def view_profile_collection(request): ctx = request.context view = request.GET.get('view', None) or ctx.get_default_view() or 'default' content = collection_view(request) if view != "id_only": discussion = ctx.get_instance_of_class(Discussion) if discussion: from assembl.models import Post, AgentProfile num_posts_per_user = \ AgentProfile.count_posts_in_discussion_all_profiles(discussion) for x in content: id = AgentProfile.get_database_id(x['@id']) if id in num_posts_per_user: x['post_count'] = num_posts_per_user[id] return content
def _get_agents_real(discussion, user_id=None, view_def='default'): user_id = user_id or Everyone agents = discussion.get_participants_query() permissions = get_permissions(user_id, discussion.id) include_emails = P_ADMIN_DISC in permissions or P_SYSADMIN in permissions if include_emails: agents = agents.options(joinedload(AgentProfile.accounts)) num_posts_per_user = \ AgentProfile.count_posts_in_discussion_all_profiles(discussion) def view(agent): result = agent.generic_json(view_def, user_id, permissions) if result is None: return if include_emails or agent.id == user_id: result['preferred_email'] = agent.get_preferred_email() post_count = num_posts_per_user.get(agent.id, 0) if post_count: result['post_count'] = post_count return result return [view(agent) for agent in agents if agent is not None]
def _get_agents_real(discussion, user_id=None, view_def='default'): user_id = user_id or Everyone agents = discussion.get_participants_query() permissions = get_permissions(user_id, discussion.id) include_emails = P_ADMIN_DISC in permissions or P_SYSADMIN in permissions if include_emails: agents = agents.options(joinedload(AgentProfile.accounts)) num_posts_per_user = \ AgentProfile.count_posts_in_discussion_all_profiles(discussion) def view(agent): result = agent.generic_json(view_def, user_id, permissions) if result is None: return if include_emails or agent.id == user_id: result['preferred_email'] = agent.get_preferred_email() post_count = num_posts_per_user.get(agent.id, 0) if post_count: result['post_count'] = post_count return result return [view(agent) for agent in agents if agent is not None]
def test_count_posts_in_discussion_all_profiles(test_app, discussion, admin_user, proposals): from assembl.models import AgentProfile result = AgentProfile.count_posts_in_discussion_all_profiles(discussion) assert result[admin_user.id] == 15
def test_count_posts_in_discussion_all_profiles(test_app, discussion, admin_user, proposals): from assembl.models import AgentProfile result = AgentProfile.count_posts_in_discussion_all_profiles(discussion) assert result[admin_user.id] == 15