def test_hidden_projects_no_projects(self): """Test CACHE USERS hidden_projects returns empty list if the user has not created any hidden project""" user = UserFactory.create() hidden_projects = cached_users.hidden_projects(user.id) assert hidden_projects == [], hidden_projects
def test_hidden_projects_only_returns_hidden(self): """Test CACHE USERS hidden_projects does not return draft (even hidden) or another user's hidden projects""" user = UserFactory.create() another_user_hidden_project = ProjectFactory.create(hidden=1) TaskFactory.create(project=another_user_hidden_project) hidden_draft_project = ProjectFactory.create(owner=user, hidden=1, info={}) hidden_projects = cached_users.hidden_projects(user.id) assert len(hidden_projects) == 0, hidden_projects
def test_hidden_projects_returns_hidden(self): """Test CACHE USERS hidden_projects returns a list with the user projects that are no drafts but are hidden""" user = UserFactory.create() hidden_project = ProjectFactory.create(owner=user, hidden=1) TaskFactory.create(project=hidden_project) hidden_projects = cached_users.hidden_projects(user.id) assert len(hidden_projects) == 1, hidden_projects assert hidden_projects[0]['short_name'] == hidden_project.short_name, hidden_projects
def test_hidden_projects_returns_hidden(self): """Test CACHE USERS hidden_projects returns a list with the user projects that are no drafts but are hidden""" user = UserFactory.create() hidden_project = ProjectFactory.create(owner=user, hidden=1) TaskFactory.create(project=hidden_project) hidden_projects = cached_users.hidden_projects(user.id) assert len(hidden_projects) == 1, hidden_projects assert hidden_projects[0][ 'short_name'] == hidden_project.short_name, hidden_projects
def _show_public_profile(user): user_dict = cached_users.get_user_summary(user.name) projects_contributed = cached_users.projects_contributed_cached(user.id) projects_created = cached_users.published_projects_cached(user.id) if current_user.is_authenticated() and current_user.admin: projects_hidden = cached_users.hidden_projects(user.id) projects_created.extend(projects_hidden) title = "%s · User Profile" % user_dict['fullname'] return render_template('/account/public_profile.html', title=title, user=user_dict, projects=projects_contributed, projects_created=projects_created)
def test_hidden_projects_returns_fields(self): """Test CACHE USERS hidden_projects returns the info of the projects with the required fields""" user = UserFactory.create() hidden_project = ProjectFactory.create(owner=user, hidden=1) TaskFactory.create(project=hidden_project) fields = ('id', 'name', 'short_name', 'owner_id', 'description', 'overall_progress', 'n_tasks', 'n_volunteers', 'info') hidden_projects = cached_users.hidden_projects(user.id) for field in fields: assert field in hidden_projects[0].keys(), field
def _show_own_profile(user): rank_and_score = cached_users.rank_and_score(user.id) user.rank = rank_and_score['rank'] user.score = rank_and_score['score'] user.total = cached_users.get_total_users() projects_contributed = cached_users.projects_contributed_cached(user.id) projects_published, projects_draft = _get_user_projects(user.id) projects_published.extend(cached_users.hidden_projects(user.id)) cached_users.get_user_summary(user.name) return render_template('account/profile.html', title=gettext("Profile"), projects_contrib=projects_contributed, projects_published=projects_published, projects_draft=projects_draft, user=user)
def projects(name): """ List user's project list. Returns a Jinja2 template with the list of projects of the user. """ user = user_repo.get_by_name(name) if not user: return abort(404) if current_user.name != name: return abort(403) user = user_repo.get(current_user.id) projects_published, projects_draft = _get_user_projects(user.id) projects_published.extend(cached_users.hidden_projects(user.id)) return render_template('account/projects.html', title=gettext("Projects"), projects_published=projects_published, projects_draft=projects_draft)