示例#1
0
def settings(request):
    """View and edit user settings."""
    if request.method == 'POST':
        locales_form = forms.UserLocalesOrderForm(
            request.POST,
            instance=request.user.profile,
        )
        profile_form = forms.UserProfileForm(
            request.POST,
            instance=request.user,
        )
        user = get_object_or_404(User, username=request.user.username)

        if locales_form.is_valid() and profile_form.is_valid():
            locales_form.save()
            profile_form.save()

            messages.success(request, 'Settings saved.')

            if user.email != request.user.email:
                logout(request)
                return redirect(request.POST.get('return_url', '/'))
    else:
        profile_form = forms.UserProfileForm(instance=request.user)

    selected_locales = list(request.user.profile.sorted_locales)
    available_locales = Locale.objects.exclude(
        pk__in=[l.pk for l in selected_locales])

    default_homepage_locale = Locale(name='Default homepage', code='')
    all_locales = list(Locale.objects.all())
    all_locales.insert(0, default_homepage_locale)

    # Set custom homepage selector value
    custom_homepage = request.user.profile.custom_homepage
    if custom_homepage:
        custom_homepage_locale = (Locale.objects.filter(
            code=custom_homepage).first())
    else:
        custom_homepage_locale = default_homepage_locale

    return render(
        request, 'contributors/settings.html', {
            'selected_locales': selected_locales,
            'available_locales': available_locales,
            'locales': all_locales,
            'locale': custom_homepage_locale,
            'profile_form': profile_form,
        })
示例#2
0
def save_user_name(request):
    """Save user name."""
    profile_form = forms.UserProfileForm(request.POST, instance=request.user)

    if not profile_form.is_valid():
        return HttpResponseBadRequest(u'\n'.join(profile_form.errors['first_name']))

    profile_form.save()

    return HttpResponse('ok')
示例#3
0
def settings(request):
    """View and edit user settings."""
    if request.method == "POST":
        locales_form = forms.UserLocalesOrderForm(
            request.POST, instance=request.user.profile,
        )
        profile_form = forms.UserProfileForm(request.POST, instance=request.user,)
        user = get_object_or_404(User, username=request.user.username)

        if locales_form.is_valid() and profile_form.is_valid():
            locales_form.save()
            profile_form.save()

            messages.success(request, "Settings saved.")

            if user.email != request.user.email:
                logout(request)
                return redirect(request.POST.get("return_url", "/"))
    else:
        profile_form = forms.UserProfileForm(instance=request.user)

    selected_locales = list(request.user.profile.sorted_locales)
    available_locales = Locale.objects.exclude(pk__in=[l.pk for l in selected_locales])

    default_homepage_locale = Locale(name="Default homepage", code="")
    all_locales = list(Locale.objects.all())
    all_locales.insert(0, default_homepage_locale)

    # Set custom homepage selector value
    custom_homepage_locale = request.user.profile.custom_homepage
    if custom_homepage_locale:
        custom_homepage_locale = Locale.objects.filter(
            code=custom_homepage_locale
        ).first()
    else:
        custom_homepage_locale = default_homepage_locale

    default_preferred_source_locale = Locale(name="Default project locale", code="")
    preferred_locales = list(Locale.objects.all())
    preferred_locales.insert(0, default_preferred_source_locale)

    # Set preferred source locale
    preferred_source_locale = request.user.profile.preferred_source_locale
    if preferred_source_locale:
        preferred_source_locale = Locale.objects.filter(
            code=preferred_source_locale
        ).first()
    else:
        preferred_source_locale = default_preferred_source_locale

    return render(
        request,
        "contributors/settings.html",
        {
            "selected_locales": selected_locales,
            "available_locales": available_locales,
            "locales": all_locales,
            "locale": custom_homepage_locale,
            "preferred_locales": preferred_locales,
            "preferred_locale": preferred_source_locale,
            "profile_form": profile_form,
        },
    )