示例#1
0
def save_settings(request, username):
    from django.contrib.auth.models import User
    from booki.editor import models

    try:
        user = User.objects.get(username=username)
    except User.DoesNotExist:
        return pages.ErrorPage(request, "errors/user_does_not_exist.html",
                               {"username": username})

    if request.user.username != username:
        return HttpResponse("No, can't do!", "text/plain")

    profile = user.get_profile()

    user.email = request.POST.get('email', '')
    user.first_name = request.POST.get('fullname', '')
    user.save()

    profile.description = request.POST.get('aboutyourself', '')

    if request.FILES.has_key('profile'):
        from booki.utils import misc

        # Check for any kind of error at the moment.
        # Notify user later with different messages.

        try:
            misc.setProfileImage(user, request.FILES['profile'])
        except:
            pass

    try:
        profile.save()

        endpoint_config = get_endpoint_or_none("@" +
                                               user.username).get_config()
        endpoint_config.notification_filter = request.POST.get(
            'notification', '')
        endpoint_config.save()
    except:
        # Should set some error code here
        transaction.rollback()
    else:
        transaction.commit()

    try:
        resp = HttpResponse(
            '<html><head><script>var j = parent.jQuery; j(function() { j.booki.profile.reloadProfileInfo(); });</script></head></html>',
            'text/html')
    except:
        transaction.rollback()
        raise
    else:
        transaction.commit()

    return resp
示例#2
0
def save_settings(request, username):
    from django.contrib.auth.models import User
    from booki.editor import models

    try:
        user = User.objects.get(username=username)
    except User.DoesNotExist:
        return pages.ErrorPage(request, "errors/user_does_not_exist.html", {"username": username})

    if request.user.username != username:
        return HttpResponse("No, can't do!", "text/plain")

    profile = user.get_profile()

    user.email      = request.POST.get('email' ,'')
    user.first_name = request.POST.get('fullname', '')
    user.save()

    profile.description = request.POST.get('aboutyourself', '')

    if request.FILES.has_key('profile'):
        from booki.utils import misc

        # Check for any kind of error at the moment.
        # Notify user later with different messages.

        try:
            misc.setProfileImage(user, request.FILES['profile'])
        except:
            pass

    try:
        profile.save()
        
        endpoint_config = get_endpoint_or_none("@"+user.username).get_config()
        endpoint_config.notification_filter = request.POST.get('notification', '')
        endpoint_config.save()
    except:
        # Should set some error code here
        transaction.rollback()
    else:
        transaction.commit()

    try:
        resp = HttpResponse('<html><head><script>var j = parent.jQuery; j(function() { j.booki.profile.reloadProfileInfo(); });</script></head></html>', 'text/html')
    except:
        transaction.rollback()
        raise
    else:
        transaction.commit()

    return resp
示例#3
0
def edit_profile(request, username):
    from django.contrib.auth.models import User

    try:
        person = User.objects.get(username=username)
    except User.DoesNotExist:
        return pages.ErrorPage(request, "errors/user_does_not_exist.html", {"username": username})

    if request.method == "POST":
        frm = ProfileForm(request.POST, request.FILES)

        if request.POST["submit"] == _("Cancel"):
            return HttpResponseRedirect(reverse("control_profile", args=[person.username]))

        if frm.is_valid():
            person.username = frm.cleaned_data["username"]
            person.email = frm.cleaned_data["email"]
            person.first_name = frm.cleaned_data["first_name"]
            person.save()

            person.get_profile().description = frm.cleaned_data["description"]
            person.get_profile().save()

            if request.FILES.has_key("profile"):
                from booki.utils import misc

                misc.setProfileImage(person, request.FILES["profile"])

            messages.success(request, _("Successfuly saved changes."))
            return HttpResponseRedirect(reverse("control_profile", args=[person.username]))
    else:
        frm = ProfileForm(
            {
                "username": person.username,
                "first_name": person.first_name,
                "email": person.email,
                "description": person.get_profile().description,
            }
        )

    return render_to_response(
        "booktypecontrol/edit_profile.html",
        {"request": request, "admin_options": ADMIN_OPTIONS, "person": person, "form": frm},
        context_instance=RequestContext(request),
    )