diff --git a/network-api/networkapi/wagtailpages/pagemodels/mixin/snippets.py b/network-api/networkapi/wagtailpages/pagemodels/mixin/snippets.py index 432da0302fb..9c5093155ce 100644 --- a/network-api/networkapi/wagtailpages/pagemodels/mixin/snippets.py +++ b/network-api/networkapi/wagtailpages/pagemodels/mixin/snippets.py @@ -1,17 +1,21 @@ from django.conf import settings from wagtail.core.models import Locale -DEFAULT_LOCALE = Locale.objects.get(language_code=settings.LANGUAGE_CODE) - class LocalizedSnippet(): + + DEFAULT_LOCALE = None + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + if self.DEFAULT_LOCALE is None: + self.DEFAULT_LOCALE = Locale.objects.get(language_code=settings.LANGUAGE_CODE) @property def original(self): + DEFAULT_LOCALE = Locale.objects.get(language_code=self.DEFAULT_LOCALE) + try: return self.get_translation(DEFAULT_LOCALE) except AttributeError: return self - diff --git a/network-api/networkapi/wagtailpages/pagemodels/products.py b/network-api/networkapi/wagtailpages/pagemodels/products.py index e45e274d87e..4dbd132e842 100644 --- a/network-api/networkapi/wagtailpages/pagemodels/products.py +++ b/network-api/networkapi/wagtailpages/pagemodels/products.py @@ -43,16 +43,13 @@ ('Needs Improvement', 'Needs Improvement'), ('Bad', 'Bad') ] -DEFAULT_LANGUAGE_CODE = settings.LANGUAGE_CODE -DEFAULT_LOCALE = Locale.objects.get(language_code=DEFAULT_LANGUAGE_CODE) -DEFAULT_LOCALE_ID = DEFAULT_LOCALE.id def get_language_code_from_request(request): """ Accepts a request. Returns a language code (string) if there is one. Falls back to English. """ - language_code = DEFAULT_LANGUAGE_CODE + language_code = settings.LANGUAGE_CODE if hasattr(request, 'LANGUAGE_CODE'): language_code = request.LANGUAGE_CODE return language_code @@ -64,6 +61,9 @@ def get_categories_for_locale(language_code): with their localized counterpart, where possible, so that we don't end up with an incomplete category list due to missing locale records. """ + DEFAULT_LANGUAGE_CODE = settings.LANGUAGE_CODE + DEFAULT_LOCALE = Locale.objects.get(language_code=DEFAULT_LANGUAGE_CODE) + default_locale_list = BuyersGuideProductCategory.objects.filter( hidden=False, locale=DEFAULT_LOCALE, @@ -1490,6 +1490,9 @@ def categories_page(self, request, slug): locale_id = Locale.objects.get(language_code=language_code).id slug = slugify(slug) + DEFAULT_LOCALE = Locale.objects.get(language_code=settings.LANGUAGE_CODE) + DEFAULT_LOCALE_ID = DEFAULT_LOCALE.id + # because we may be working with localized content, and the slug # will always be our english slug, we need to find the english # category first, and then find its corresponding localized version