read locale_support from source catalog and pass it to locale model

This commit is contained in:
Michael Hudson-Doyle 2021-09-30 11:51:44 +13:00
parent 0a03ef5257
commit 5811fe3276
3 changed files with 14 additions and 3 deletions

View File

@ -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

View File

@ -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"),
}

View File

@ -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