def _show_public_profile(user, form): user_dict = cached_users.public_get_user_summary(user.name) projects_contributed = cached_users.public_projects_contributed_cached( user.id) projects_created = cached_users.public_published_projects_cached(user.id) can_update = False if (user.restrict is False and current_user.is_authenticated() and current_user.admin): draft_projects = cached_users.draft_projects(user.id) projects_created.extend(draft_projects) can_update = True if user.restrict is False: title = "%s · User Profile" % user_dict['fullname'] else: title = "User data is restricted" projects_contributed = [] projects_created = [] form = None response = dict(template='/account/public_profile.html', title=title, user=user_dict, projects=projects_contributed, projects_created=projects_created, form=form, can_update=can_update, input_form=False) return handle_content_type(response)
def _show_public_profile(user, form, can_update): if current_user.id == user.id: user_dict = cached_users.get_user_summary(user.name) else: user_dict = cached_users.public_get_user_summary(user.name) if current_user.admin: user_dict['email_addr'] = user.email_addr projects_contributed = cached_users.public_projects_contributed_cached( user.id) projects_created = cached_users.public_published_projects_cached(user.id) total_projects_contributed = '{} / {}'.format( cached_users.n_projects_contributed(user.id), n_published()) percentage_tasks_completed = user_dict['n_answers'] * 100 / ( n_total_tasks() or 1) if current_user.is_authenticated() and current_user.admin: draft_projects = cached_users.draft_projects(user.id) projects_created.extend(draft_projects) title = "%s · User Profile" % user_dict['fullname'] response = dict(template='/account/public_profile.html', title=title, user=user_dict, projects=projects_contributed, projects_created=projects_created, total_projects_contributed=total_projects_contributed, percentage_tasks_completed=percentage_tasks_completed, form=form, can_update=can_update, private_instance=bool(data_access_levels), upref_mdata_enabled=bool(app_settings.upref_mdata)) return handle_content_type(response)
def _show_public_profile(user, form): user_dict = cached_users.public_get_user_summary(user.name) projects_contributed = cached_users.public_projects_contributed_cached(user.id) projects_created = cached_users.public_published_projects_cached(user.id) can_update = False if (user.restrict is False and current_user.is_authenticated() and current_user.admin): draft_projects = cached_users.draft_projects(user.id) projects_created.extend(draft_projects) can_update = True if user.restrict is False: title = "%s · User Profile" % user_dict['fullname'] else: title = "User data is restricted" projects_contributed = [] projects_created = [] form = None response = dict(template='/account/public_profile.html', title=title, user=user_dict, projects=projects_contributed, projects_created=projects_created, form=form, can_update=can_update, input_form=False) return handle_content_type(response)
def test_public_published_projects_no_projects_cached(self): """Test public CACHE USERS published_projects_cached returns empty list if the user has not created any project""" user = UserFactory.create() projects_published = cached_users.public_published_projects_cached(user.id) assert projects_published == [], projects_published
def test_public_published_projects_cached_returns_fields(self): """Test CACHE USERS published_projects_cached returns the info of the projects with the required fields""" user = UserFactory.create() published_project = ProjectFactory.create(owner=user, published=True) private_fields = ('owner_id') public_fields = ('name', 'short_name', 'description', 'overall_progress', 'n_tasks', 'n_volunteers', 'info') projects_published = cached_users.public_published_projects_cached(user.id) for field in public_fields: assert field in projects_published[0].keys(), field for field in private_fields: assert field not in projects_published[0].keys(), field
def _show_public_profile(user): user_dict = cached_users.public_get_user_summary(user.name) projects_contributed = cached_users.public_projects_contributed_cached(user.id) projects_created = cached_users.public_published_projects_cached(user.id) if current_user.is_authenticated() and current_user.admin: draft_projects = cached_users.draft_projects(user.id) projects_created.extend(draft_projects) title = "%s · User Profile" % user_dict['fullname'] response = dict(template='/account/public_profile.html', title=title, user=user_dict, projects=projects_contributed, projects_created=projects_created) return handle_content_type(response)