Skip to content

Commit df6207c

Browse files
committed
feat: enforce LANGUAGE_CODE setting
1 parent c4f40e1 commit df6207c

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

dmoj/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@
438438
'judge.middleware.ShortCircuitMiddleware',
439439
'django.middleware.common.CommonMiddleware',
440440
'django.contrib.sessions.middleware.SessionMiddleware',
441+
'judge.middleware.SetDefaultLangMiddleware',
441442
'django.middleware.locale.LocaleMiddleware',
442443
'judge.middleware.APIMiddleware',
443444
'django.middleware.csrf.CsrfViewMiddleware',

judge/middleware.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,3 +259,19 @@ def process_template_response(self, request, response):
259259
# inject the logo override image into the template context
260260
response.context_data['logo_override_image'] = request.organization.logo_override_image
261261
return response
262+
263+
264+
def SetDefaultLangMiddleware(get_response):
265+
def middleware(request):
266+
# Code to be executed for each request before processing it
267+
268+
if not request.COOKIES.get('django_language'): # Language not selected by the user ?
269+
# Set your default language code here
270+
request.COOKIES['django_language'] = settings.LANGUAGE_CODE
271+
272+
response = get_response(request)
273+
# If you want to process anycode after the view is called
274+
275+
return response
276+
277+
return middleware

0 commit comments

Comments
 (0)