Skip to content

Commit

Permalink
Ensure TemplateResponses returned by views are rendered within the co…
Browse files Browse the repository at this point in the history
…ntext of translation.override()
  • Loading branch information
ababic committed Dec 8, 2019
1 parent dd92c2a commit 5e09b5e
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions wagtail/admin/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
from django.core.exceptions import PermissionDenied
from django.urls import reverse
from django.utils.timezone import activate as activate_tz
from django.utils.translation import activate as activate_lang
from django.utils.translation import ugettext as _
from django.utils.translation import override, ugettext as _

from wagtail.admin import messages
from wagtail.utils import l18n
Expand All @@ -25,13 +24,19 @@ def decorated_view(request, *args, **kwargs):
return reject_request(request)

if user.has_perms(['wagtailadmin.access_admin']):
preferred_language = None
if hasattr(user, 'wagtail_userprofile'):
language = user.wagtail_userprofile.get_preferred_language()
l18n.set_language(language)
activate_lang(language)
preferred_language = user.wagtail_userprofile.get_preferred_language()
l18n.set_language(preferred_language)
time_zone = user.wagtail_userprofile.get_current_time_zone()
activate_tz(time_zone)
return view_func(request, *args, **kwargs)
with override(preferred_language):
response = view_func(request, *args, **kwargs)
if hasattr(response, 'render'):
return response.render()
return response



if not request.is_ajax():
messages.error(request, _('You do not have permission to access the admin'))
Expand Down

0 comments on commit 5e09b5e

Please sign in to comment.