Пример #1
0
def show_list(request, user_id=None, extra_context=None, avatar_size=128):
    """lists user's avatars, including gravatar and the default avatar"""
    user = get_object_or_404(User, pk=user_id)
    avatar_data, has_uploaded_avatar, can_upload = get_avatar_data(
        user, avatar_size)
    status_message = request.session.pop('askbot_avatar_status_message', None)

    if not isinstance(status_message, unicode):
        #work around bug where this was accidentally encoded into str
        #and stored into session - we lose this message
        #delete this branch some time in 2017
        status_message = ''

    context = {
        #these are user profile context vars
        'can_show_karma': user_can_see_karma(request.user, user),
        'user_follow_feature_on': ('followit'
                                   in django_settings.INSTALLED_APPS),
        #below are pure avatar view context vars
        'avatar_data': avatar_data,
        'has_uploaded_avatar': has_uploaded_avatar,
        'can_upload': can_upload,
        'page_class': 'user-profile-page',
        'upload_avatar_form': UploadAvatarForm(user=user),
        'status_message': status_message,
        'view_user': user
    }
    context.update(extra_context or {})
    return render(request, 'avatar/show_list.html', context)
Пример #2
0
def show_list(request, user_id=None, extra_context=None, avatar_size=128):
    """lists user's avatars, including gravatar and the default avatar"""
    user = get_object_or_404(User, pk=user_id)
    avatar_data, has_uploaded_avatar, can_upload = get_avatar_data(user, avatar_size)
    status_message = request.session.pop('askbot_avatar_status_message', None)

    if not isinstance(status_message, unicode):
        #work around bug where this was accidentally encoded into str
        #and stored into session - we lose this message
        #delete this branch some time in 2017
        status_message = ''

    context = {
        #these are user profile context vars
        'can_show_karma': user_can_see_karma(request.user, user),
        'user_follow_feature_on': ('followit' in django_settings.INSTALLED_APPS),
        #below are pure avatar view context vars
        'avatar_data': avatar_data,
        'has_uploaded_avatar': has_uploaded_avatar,
        'can_upload': can_upload,
        'page_class': 'user-profile-page',
        'upload_avatar_form': UploadAvatarForm(user=user),
        'status_message': status_message,
        'view_user': user
    }
    context.update(extra_context or {})
    return render(request, 'avatar/show_list.html', context)
Пример #3
0
def user(request, id, slug=None, tab_name=None):
    """Main user view function that works as a switchboard

    id - id of the profile owner

    TODO: decide what to do with slug - it is not used
    in the code in any way
    """
    profile_owner = get_object_or_404(models.User, id=id)

    if profile_owner.is_blocked():
        if request.user.is_anonymous() or \
                not request.user.is_administrator_or_moderator():
            raise Http404

    if slugify(profile_owner.username) != slug:
        view_url = profile_owner.get_profile_url() + '?' + urlencode(
            request.REQUEST)
        return redirect(view_url)

    if not tab_name:
        tab_name = request.GET.get('sort', 'stats')

    can_show_karma = models.user_can_see_karma(request.user, profile_owner)
    if (not can_show_karma) and tab_name == 'reputation':
        raise Http404

    user_view_func = USER_VIEW_CALL_TABLE.get(tab_name, user_stats)

    search_state = SearchState(
        scope=None,
        sort=None,
        query=None,
        tags=None,
        author=None,
        page=None,
        page_size=const.USER_POSTS_PAGE_SIZE,
        user_logged_in=profile_owner.is_authenticated(),
    )

    context = {
        'view_user': profile_owner,
        'can_show_karma': can_show_karma,
        'search_state': search_state,
        'user_follow_feature_on': ('followit'
                                   in django_settings.INSTALLED_APPS),
    }

    if CUSTOM_TAB:
        context['custom_tab_name'] = CUSTOM_TAB['NAME']
        context['custom_tab_slug'] = CUSTOM_TAB['SLUG']

    return user_view_func(request, profile_owner, context)
Пример #4
0
def user(request, id, slug=None, tab_name=None):
    """Main user view function that works as a switchboard

    id - id of the profile owner

    todo: decide what to do with slug - it is not used
    in the code in any way
    """
    profile_owner = get_object_or_404(models.User, id = id)

    if profile_owner.is_blocked():
        if request.user.is_anonymous() \
            or not request.user.is_administrator_or_moderator():
            raise Http404

    if slugify(profile_owner.username) != slug:
        view_url = profile_owner.get_profile_url() + '?' \
                                + urllib.urlencode(request.REQUEST)
        return HttpResponseRedirect(view_url)

    if not tab_name:
        tab_name = request.GET.get('sort', 'stats')

    can_show_karma = models.user_can_see_karma(request.user, profile_owner)
    if can_show_karma == False and tab_name == 'reputation':
        raise Http404

    user_view_func = USER_VIEW_CALL_TABLE.get(tab_name, user_stats)

    search_state = SearchState(

        scope=None,
        sort=None,
        query=None,
        tags=None,
        author=None,
        page=None,
        page_size=const.USER_POSTS_PAGE_SIZE,
        user_logged_in=profile_owner.is_authenticated(),
    )

    context = {
        'view_user': profile_owner,
        'can_show_karma': can_show_karma,
        'search_state': search_state,
        'user_follow_feature_on': ('followit' in django_settings.INSTALLED_APPS),
    }
    if CUSTOM_TAB:
        context['custom_tab_name'] = CUSTOM_TAB['NAME']
        context['custom_tab_slug'] = CUSTOM_TAB['SLUG']
    return user_view_func(request, profile_owner, context)
Пример #5
0
def show_list(request, user_id=None, extra_context=None, avatar_size=128):
    """lists user's avatars, including gravatar and the default avatar"""
    user = get_object_or_404(User, pk=user_id)
    avatar_data, has_uploaded_avatar, can_upload = get_avatar_data(user, avatar_size)
    status_message = request.session.pop('askbot_avatar_status_message', None)

    context = {
        #these are user profile context vars
        'can_show_karma': user_can_see_karma(request.user, user),
        'user_follow_feature_on': ('followit' in django_settings.INSTALLED_APPS),
        #below are pure avatar view context vars
        'avatar_data': avatar_data,
        'has_uploaded_avatar': has_uploaded_avatar,
        'can_upload': can_upload,
        'page_class': 'user-profile-page',
        'upload_avatar_form': UploadAvatarForm(user=user),
        'status_message': status_message,
        'view_user': user
    }
    context.update(extra_context or {})
    return render(request, 'avatar/show_list.html', context)
Пример #6
0
def show_list(request, user_id=None, extra_context=None, avatar_size=128):
    """lists user's avatars, including gravatar and the default avatar"""
    user = get_object_or_404(User, pk=user_id)
    avatar_data, has_uploaded_avatar, can_upload = get_avatar_data(user, avatar_size)
    status_message = request.session.pop('askbot_avatar_status_message', None)

    context = {
        # these are user profile context vars
        'can_show_karma': user_can_see_karma(request.user, user),
        'user_follow_feature_on': ('followit' in django_settings.INSTALLED_APPS),
        # below are pure avatar view context vars
        'avatar_data': avatar_data,
        'has_uploaded_avatar': has_uploaded_avatar,
        'can_upload': can_upload,
        'page_class': 'user-profile-page',
        'upload_avatar_form': UploadAvatarForm(user=user),
        'status_message': status_message,
        'view_user': user
    }
    context.update(extra_context or {})
    return render(request, 'avatar/show_list.jinja', context)