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, })
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')
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, }, )