Ejemplo n.º 1
0
def _get_profile_form(request, form=None, non_xhr=False):
    """Helper method to render the profile form."""
    fb_id = None
    facebook_photo = None
    if settings.MAKAHIKI_USE_FACEBOOK:
        fb_id = facebook.get_user_from_cookie(
            request.COOKIES,
            settings.MAKAHIKI_FACEBOOK_APP_ID,
            settings.MAKAHIKI_FACEBOOK_SECRET_KEY)

    if fb_id:
        facebook_photo = "http://graph.facebook.com/%s/picture?type=normal" % fb_id

    if not form:
        form = ProfileForm(initial={
            "display_name": request.user.get_profile().name,
            "facebook_photo": facebook_photo,
            })

    response = render_to_string("first-login/profile.html", {
        "form": form,
        "fb_id": fb_id,
        }, context_instance=RequestContext(request))

    if non_xhr:
        return HttpResponse('<textarea>' + json.dumps({
            "title": "Introduction: Step 4 of 7",
            "contents": cgi.escape(response),
            }) + '</textarea>', mimetype='text/html')
    else:
        return HttpResponse(json.dumps({
            "title": "Introduction: Step 4 of 7",
            "contents": response,
            }), mimetype='application/json')
Ejemplo n.º 2
0
def change(request, extra_context=None, next_override=None):
    if extra_context:
        extra_context = {}
    file_error = None
    avatars = Avatar.objects.filter(user=request.user).order_by('-primary')
    if avatars.count() > 0:
        avatar = avatars[0]
        kwargs = {'initial': {'choice': avatar.id}}
    else:
        avatar = None
        kwargs = {}
    primary_avatar_form = PrimaryAvatarForm(request.POST or None,
                                            user=request.user,
                                            **kwargs)
    if request.method == "POST":
        if 'avatar' in request.FILES:
            try:
                __handle_uploaded_file(request.FILES['avatar'], request.user)
                return HttpResponseRedirect(
                    reverse("profile_index") + "?changed_avatar=True")
            except Exception:  # pylint: disable=W0703
                file_error = "Uploaded file is larger than 2 MB."

        if 'choice' in request.POST and primary_avatar_form.is_valid():
            avatar = Avatar.objects.get(
                id=primary_avatar_form.cleaned_data['choice'])
            avatar.primary = True
            avatar.save()

            return HttpResponseRedirect(
                reverse("profile_index") + "?changed_avatar=True")

    fb_id = None
    fb_form = None
    if settings.MAKAHIKI_USE_FACEBOOK:
        fb_id = facebook.get_user_from_cookie(
            request.COOKIES, settings.MAKAHIKI_FACEBOOK_APP_ID,
            settings.MAKAHIKI_FACEBOOK_SECRET_KEY)

        fb_form = FacebookPictureForm(
            initial={
                "facebook_photo":
                "http://graph.facebook.com/%s/picture?type=large" % fb_id
            })

    return render_to_response(
        'avatar/change.html',
        extra_context,
        context_instance=RequestContext(
            request, {
                'avatar': avatar,
                'avatars': avatars,
                'primary_avatar_form': primary_avatar_form,
                'next': next_override or _get_next(request),
                'fb_id': fb_id,
                'fb_form': fb_form,
                'file_error': file_error,
            }))
Ejemplo n.º 3
0
def change(request, extra_context=None, next_override=None):
    if extra_context:
        extra_context = {}
    file_error = None
    avatars = Avatar.objects.filter(user=request.user).order_by('-primary')
    if avatars.count() > 0:
        avatar = avatars[0]
        kwargs = {'initial': {'choice': avatar.id}}
    else:
        avatar = None
        kwargs = {}
    primary_avatar_form = PrimaryAvatarForm(request.POST or None,
        user=request.user, **kwargs)
    if request.method == "POST":
        if 'avatar' in request.FILES:
            try:
                __handle_uploaded_file(request.FILES['avatar'], request.user)
                return HttpResponseRedirect(
                    reverse("profile_index") + "?changed_avatar=True")
            except Exception:  # pylint: disable=W0703
                file_error = "Uploaded file is larger than 2 MB."

        if 'choice' in request.POST and primary_avatar_form.is_valid():
            avatar = Avatar.objects.get(id=primary_avatar_form.cleaned_data['choice'])
            avatar.primary = True
            avatar.save()

            return HttpResponseRedirect(
                reverse("profile_index") + "?changed_avatar=True")

    fb_id = None
    fb_form = None
    if settings.MAKAHIKI_USE_FACEBOOK:
        fb_id = facebook.get_user_from_cookie(request.COOKIES,
            settings.MAKAHIKI_FACEBOOK_APP_ID, settings.MAKAHIKI_FACEBOOK_SECRET_KEY)

        fb_form = FacebookPictureForm(initial={
            "facebook_photo":
                "http://graph.facebook.com/%s/picture?type=large" % fb_id
        })

    return render_to_response(
        'avatar/change.html',
        extra_context,
        context_instance=RequestContext(
            request,
                {'avatar': avatar,
                 'avatars': avatars,
                 'primary_avatar_form': primary_avatar_form,
                 'next': next_override or _get_next(request),
                 'fb_id': fb_id,
                 'fb_form': fb_form,
                 'file_error': file_error,
                 }
        )
    )
Ejemplo n.º 4
0
def _get_profile_form(request, form=None, non_xhr=False):
    """Helper method to render the profile form."""
    fb_id = None
    facebook_photo = None
    if settings.MAKAHIKI_USE_FACEBOOK:
        fb_id = facebook.get_user_from_cookie(
            request.COOKIES, settings.MAKAHIKI_FACEBOOK_APP_ID,
            settings.MAKAHIKI_FACEBOOK_SECRET_KEY)

    if fb_id:
        facebook_photo = "http://graph.facebook.com/%s/picture?type=normal" % fb_id

    if not form:
        form = ProfileForm(
            initial={
                "display_name": request.user.get_profile().name,
                "facebook_photo": facebook_photo,
            })

    referral_enabled = challenge_mgr.is_game_enabled("Referral Game Mechanics")

    response = render_to_string("first-login/profile.html", {
        "form": form,
        "fb_id": fb_id,
        "referral_enabled": referral_enabled,
    },
                                context_instance=RequestContext(request))

    if non_xhr:
        return HttpResponse('<textarea>' +
                            json.dumps({
                                "title": "Introduction: Step 4 of 7",
                                "contents": cgi.escape(response),
                            }) + '</textarea>',
                            mimetype='text/html')
    else:
        return HttpResponse(json.dumps({
            "title": "Introduction: Step 4 of 7",
            "contents": response,
        }),
                            mimetype='application/json')