diff --git a/server/books/models/module.py b/server/books/models/module.py index abb43d26..d7c105a5 100644 --- a/server/books/models/module.py +++ b/server/books/models/module.py @@ -91,6 +91,9 @@ class Module(StrictHierarchyPage): parent_page_types = ["books.Topic"] subpage_types = ["books.Chapter"] + def is_translated(self) -> bool: + return self.get_translations().count() > 0 + # todo: isn't this a duplicate definition? def get_child_ids(self): return self.get_children().values_list("id", flat=True) diff --git a/server/books/schema/queries.py b/server/books/schema/queries.py index 1fbd5c62..64b83e92 100644 --- a/server/books/schema/queries.py +++ b/server/books/schema/queries.py @@ -1,10 +1,12 @@ import graphene from graphene import relay from graphene_django.filter import DjangoFilterConnectionField +from wagtail.models import Locale from api.utils import get_object from core.logger import get_logger from .connections import TopicConnection, ModuleConnection +<<<<<<< HEAD from .nodes import ( ContentBlockNode, ChapterNode, @@ -42,7 +44,8 @@ class BookQuery(object): return Book.objects.filter(**kwargs).live() def resolve_topics(self, *args, **kwargs): - return Topic.objects.live().filter(locale__language_code="de") + default_locale = Locale.get_default() + return Topic.objects.live().filter(locale=default_locale) def resolve_modules(self, *args, **kwargs): return Module.objects.filter(**kwargs).live() @@ -79,7 +82,8 @@ class BookQuery(object): return get_object(Topic, id) if slug is not None: try: - return Topic.objects.get(slug=slug, locale__language_code="de") + default_locale = Locale.get_default() + return Topic.objects.get(slug=slug, locale=default_locale) except Topic.DoesNotExist: return NotFoundFailure return None diff --git a/server/core/settings.py b/server/core/settings.py index 36f5de80..105d0959 100644 --- a/server/core/settings.py +++ b/server/core/settings.py @@ -193,7 +193,7 @@ USE_L10N = True USE_TZ = True -LANGUAGES = [ +WAGTAIL_CONTENT_LANGUAGES = LANGUAGES = [ ("de", _("German")), ("en", _("English")), ("fr", _("French")),