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
Exemple #2
0
    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
Exemple #5
0
    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
Exemple #6
0
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)
Exemple #7
0
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
Exemple #9
0
    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
Exemple #10
0
    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
Exemple #11
0
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)
Exemple #12
0
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)
Exemple #13
0
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)
Exemple #14
0
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)