Skip to content

Commit 614439d

Browse files
committed
Clean session nav_menu cache when switch the language.
1 parent 74f673f commit 614439d

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

xadmin/plugins/language.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11

22
from django.conf import settings
33
from django.template import loader
4+
from django.views.i18n import set_language
45
from xadmin.plugins.utils import get_context_dict
56
from xadmin.sites import site
6-
from xadmin.views import BaseAdminPlugin, CommAdminView
7+
from xadmin.views import BaseAdminPlugin, CommAdminView, BaseAdminView
78

89

910
class SetLangNavPlugin(BaseAdminPlugin):
@@ -13,6 +14,13 @@ def block_top_navmenu(self, context, nodes):
1314
context['redirect_to'] = self.request.get_full_path()
1415
nodes.append(loader.render_to_string('xadmin/blocks/comm.top.setlang.html', context=context))
1516

17+
class SetLangView(BaseAdminView):
18+
19+
def post(self, request, *args, **kwargs):
20+
if 'nav_menu' in request.session:
21+
del request.session['nav_menu']
22+
return set_language(request)
23+
1624
if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings.MIDDLEWARE_CLASSES:
1725
site.register_plugin(SetLangNavPlugin, CommAdminView)
18-
site.register_view(r'^i18n/', lambda site: 'django.conf.urls.i18n', 'i18n')
26+
site.register_view(r'^i18n/setlang/$', SetLangView, 'set_language')

0 commit comments

Comments
 (0)