From 56a109fdfbc30a79e95e6f43106d0e73b97e9e72 Mon Sep 17 00:00:00 2001 From: Merlin Buczek Date: Sun, 1 Sep 2019 16:07:32 +0200 Subject: [PATCH] Translation fallback to both, add notification --- config/settings/base.py | 2 ++ mpicms/base/mixins.py | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/config/settings/base.py b/config/settings/base.py index f328328..737c7ce 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -219,6 +219,8 @@ ('de', _('German')), ) +MODELTRANSLATION_FALLBACK_LANGUAGES = ('en', 'de') + LOCALE_PATHS = [ os.path.join(ROOT_DIR, 'locale'), ] diff --git a/mpicms/base/mixins.py b/mpicms/base/mixins.py index 3f0f7bb..43b2e29 100644 --- a/mpicms/base/mixins.py +++ b/mpicms/base/mixins.py @@ -1,8 +1,9 @@ from django.utils import translation from django.conf import settings from django.db import models -from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_lazy as _, get_language_info from django.contrib.auth import get_user_model +from django.contrib import messages from wagtail.admin.edit_handlers import StreamFieldPanel from wagtail.core.models import Page @@ -64,5 +65,12 @@ def preview_text(self): 'markdown' ] else None + def serve(self, request): + lang = request.LANGUAGE_CODE + if not getattr(self, 'body_' + lang): + messages.info(request, _('Page not available in ') + get_language_info(lang)['name_local']) + + return super().serve(request) + class Meta: # noqa abstract = True