diff --git a/subiquity/models/locale.py b/subiquity/models/locale.py index 8dc064f4..53ad68fe 100644 --- a/subiquity/models/locale.py +++ b/subiquity/models/locale.py @@ -18,13 +18,14 @@ import logging log = logging.getLogger('subiquity.models.locale') -class LocaleModel(object): +class LocaleModel: """ Model representing locale selection XXX Only represents *language* selection for now. """ selected_language = None + locale_support = "locale-only" def switch_language(self, code): self.selected_language = code diff --git a/subiquity/models/source.py b/subiquity/models/source.py index 99df435e..f7219d00 100644 --- a/subiquity/models/source.py +++ b/subiquity/models/source.py @@ -33,6 +33,7 @@ class CatalogEntry: size: int type: str default: bool = False + locale_support: str = attr.ib(default="locale-only") fake_entries = { @@ -44,7 +45,8 @@ fake_entries = { path='/media/filesystem', type='cp', default=True, - size=2 << 30), + size=2 << 30, + locale_support="locale-only"), 'desktop': CatalogEntry( variant='desktop', id='synthesized', @@ -53,7 +55,8 @@ fake_entries = { path='/media/filesystem', type='cp', default=True, - size=5 << 30), + size=5 << 30, + locale_support="langpack"), } diff --git a/subiquity/server/controllers/locale.py b/subiquity/server/controllers/locale.py index ce5055dc..eb30df5e 100644 --- a/subiquity/server/controllers/locale.py +++ b/subiquity/server/controllers/locale.py @@ -18,6 +18,7 @@ import os from subiquity.common.apidef import API from subiquity.server.controller import SubiquityController +from subiquity.server.types import InstallerChannels log = logging.getLogger('subiquity.server.controllers.locale') @@ -38,6 +39,12 @@ class LocaleController(SubiquityController): self.model.selected_language = os.environ.get("LANG") \ or self.autoinstall_default self.app.aio_loop.create_task(self.configured()) + self.app.hub.subscribe( + (InstallerChannels.CONFIGURED, 'source'), self._set_source) + + def _set_source(self): + current = self.app.base_model.source.current + self.model.locale_support = current.locale_support def serialize(self): return self.model.selected_language