pull frontend lang setting from db if set

This commit is contained in:
Michael Shamoon 2022-05-18 02:41:15 -07:00
parent 89c5aac9ed
commit e0999c7ba4
2 changed files with 19 additions and 8 deletions

View File

@ -65,6 +65,9 @@ export class SettingsService {
tap((uisettings) => { tap((uisettings) => {
Object.assign(this.settings, uisettings.settings) Object.assign(this.settings, uisettings.settings)
this.maybeMigrateSettings() this.maybeMigrateSettings()
// to update lang cookie
if (this.settings['language']?.length)
this.setLanguage(this.settings['language'])
this.displayName = uisettings.display_name.trim() this.displayName = uisettings.display_name.trim()
}) })
) )

View File

@ -83,12 +83,18 @@ logger = logging.getLogger("paperless.api")
class IndexView(TemplateView): class IndexView(TemplateView):
template_name = "index.html" template_name = "index.html"
def get_language(self): def get_frontend_language(self):
if hasattr(
self.request.user,
"ui_settings",
) and self.request.user.ui_settings.settings.get("language"):
lang = self.request.user.ui_settings.settings.get("language")
else:
lang = get_language()
# This is here for the following reason: # This is here for the following reason:
# Django identifies languages in the form "en-us" # Django identifies languages in the form "en-us"
# However, angular generates locales as "en-US". # However, angular generates locales as "en-US".
# this translates between these two forms. # this translates between these two forms.
lang = get_language()
if "-" in lang: if "-" in lang:
first = lang[: lang.index("-")] first = lang[: lang.index("-")]
second = lang[lang.index("-") + 1 :] second = lang[lang.index("-") + 1 :]
@ -101,16 +107,18 @@ class IndexView(TemplateView):
context["cookie_prefix"] = settings.COOKIE_PREFIX context["cookie_prefix"] = settings.COOKIE_PREFIX
context["username"] = self.request.user.username context["username"] = self.request.user.username
context["full_name"] = self.request.user.get_full_name() context["full_name"] = self.request.user.get_full_name()
context["styles_css"] = f"frontend/{self.get_language()}/styles.css" context["styles_css"] = f"frontend/{self.get_frontend_language()}/styles.css"
context["runtime_js"] = f"frontend/{self.get_language()}/runtime.js" context["runtime_js"] = f"frontend/{self.get_frontend_language()}/runtime.js"
context["polyfills_js"] = f"frontend/{self.get_language()}/polyfills.js" context[
context["main_js"] = f"frontend/{self.get_language()}/main.js" "polyfills_js"
] = f"frontend/{self.get_frontend_language()}/polyfills.js"
context["main_js"] = f"frontend/{self.get_frontend_language()}/main.js"
context[ context[
"webmanifest" "webmanifest"
] = f"frontend/{self.get_language()}/manifest.webmanifest" # noqa: E501 ] = f"frontend/{self.get_frontend_language()}/manifest.webmanifest" # noqa: E501
context[ context[
"apple_touch_icon" "apple_touch_icon"
] = f"frontend/{self.get_language()}/apple-touch-icon.png" # noqa: E501 ] = f"frontend/{self.get_frontend_language()}/apple-touch-icon.png" # noqa: E501
return context return context