[FIX] website: language change selector

Correct lang cookie setting when the main layout has not updated.
This commit is contained in:
Christophe Simonis 2015-04-08 20:14:25 +02:00
parent db23690db3
commit 2a88020c10
2 changed files with 17 additions and 3 deletions

View File

@ -52,8 +52,11 @@ class Website(openerp.addons.web.controllers.main.Home):
return super(Website, self).web_login(*args, **kw)
@http.route('/website/lang/<lang>', type='http', auth="public", website=True, multilang=False)
def change_lang(self, lang, r, **kwargs):
redirect = werkzeug.utils.redirect(r or '/%s' % lang, 303)
def change_lang(self, lang, r='/', **kwargs):
if lang == 'default':
lang = request.website.default_lang_code
r = '/%s%s' % (lang, r or '/')
redirect = werkzeug.utils.redirect(r or ('/%s' % lang), 303)
redirect.set_cookie('website_lang', lang)
return redirect

View File

@ -350,6 +350,17 @@
});
});
if (!$('.js_change_lang').length) {
// in case template is not up to date...
var links = $('ul.js_language_selector li a:not([data-oe-id])');
var m = $(_.min(links, function(l) { return $(l).attr('href').length; })).attr('href');
links.each(function() {
var t = $(this).attr('href');
var l = (t === m) ? "default" : t.split('/')[1];
$(this).data('lang', l).addClass('js_change_lang');
});
}
$(document).on('click', '.js_change_lang', function(e) {
e.preventDefault();
@ -361,7 +372,7 @@
hash: location.hash
};
location.href = _.str.sprintf("/website/lang/%(lang)s?r=%(url)s%(hash)s", redirect);
})
});
/* ----- KANBAN WEBSITE ---- */
$('.js_kanban').each(function () {