From c1e5cebd2101be77c3a7fd01b1c2691afcc08864 Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Wed, 11 Nov 2020 16:46:52 +0100 Subject: [PATCH] Allow site local configuration of available languages --- aleksis/core/preferences.py | 13 +++++++++++++ .../core/templates/core/partials/language_form.html | 3 +-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/aleksis/core/preferences.py b/aleksis/core/preferences.py index 890801b67..eba67c722 100644 --- a/aleksis/core/preferences.py +++ b/aleksis/core/preferences.py @@ -1,5 +1,6 @@ from django.conf import settings from django.forms import EmailField, ImageField, URLField +from django.forms.widgets import SelectMultiple from django.utils.translation import gettext_lazy as _ from dynamic_preferences.preferences import Section @@ -22,6 +23,7 @@ notification = Section("notification") footer = Section("footer") account = Section("account") auth = Section("auth", verbose_name=_("Authentication")) +internationalisation = Section("internationalisation", verbose_name=_("Internationalisation")) @site_preferences_registry.register @@ -196,3 +198,14 @@ class AuthenticationBackends(MultipleChoicePreference): def get_choices(self): return [(b, b) for b in settings.CUSTOM_AUTHENTICATION_BACKENDS] + + +@site_preferences_registry.register +class AvailableLanguages(MultipleChoicePreference): + section = internationalisation + name = "languages" + default = [code[0] for code in settings.LANGUAGES] + widget = SelectMultiple + verbose_name = _("Available languages") + field_attribute = {"initial": []} + choices = settings.LANGUAGES diff --git a/aleksis/core/templates/core/partials/language_form.html b/aleksis/core/templates/core/partials/language_form.html index 36ffa81a8..9a1c62e2c 100644 --- a/aleksis/core/templates/core/partials/language_form.html +++ b/aleksis/core/templates/core/partials/language_form.html @@ -8,8 +8,7 @@ <input name="next" type="hidden" value="{{ request.get_full_path }}"> {% get_current_language as LANGUAGE_CODE %} - {% get_available_languages as LANGUAGES %} - {% get_language_info_list for LANGUAGES as languages %} + {% get_language_info_list for request.site.preferences.internationalisation__languages as languages %} {# Select #} <div class="input-field language-field"> -- GitLab