Nicolas Simonds 9e4e8682db Store user settings in persistent cookies as well as the session
This should keep international users from having to reset their
language preferences every time they login.

Fixes Bug: 1225250

Change-Id: I093e7a98085bf83890b295ec4a61f839b60db4db
2013-09-13 17:41:21 -07:00

44 lines
1.8 KiB
Python

# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2012 Nebula, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from django.conf import settings # noqa
from horizon import forms
from openstack_dashboard.dashboards.settings.user import forms as user_forms
class UserSettingsView(forms.ModalFormView):
form_class = user_forms.UserSettingsForm
template_name = 'settings/user/settings.html'
def get_initial(self):
return {'language': self.request.session.get(
settings.LANGUAGE_COOKIE_NAME,
self.request.COOKIES.get(settings.LANGUAGE_COOKIE_NAME,
self.request.LANGUAGE_CODE)),
'timezone': self.request.session.get(
'django_timezone',
self.request.COOKIES.get('django_timezone', 'UTC')),
'pagesize': self.request.session.get(
'horizon_pagesize',
self.request.COOKIES.get(
'horizon_pagesize',
getattr(settings,
'API_RESULT_PAGE_SIZE', 20)))}
def form_valid(self, form):
return form.handle(self.request, form.cleaned_data)