diff --git a/musician/mixins.py b/musician/mixins.py index ba54587..6368467 100644 --- a/musician/mixins.py +++ b/musician/mixins.py @@ -1,6 +1,7 @@ from django.contrib.auth.mixins import UserPassesTestMixin from django.utils.translation import gettext_lazy as _ from django.views.generic.base import ContextMixin +from django.conf import settings from . import api, get_version from .auth import SESSION_KEY_TOKEN @@ -20,6 +21,7 @@ class CustomContextMixin(ContextMixin): context.update({ 'services_menu': services_menu, 'version': get_version(), + 'languages': settings.LANGUAGES, }) return context diff --git a/musician/templates/musician/base.html b/musician/templates/musician/base.html index 0f41767..3d4a1ec 100644 --- a/musician/templates/musician/base.html +++ b/musician/templates/musician/base.html @@ -55,18 +55,42 @@ {% endfor %} + + {# #} - + + + diff --git a/musician/urls.py b/musician/urls.py index c4402e2..9b4c0ca 100644 --- a/musician/urls.py +++ b/musician/urls.py @@ -19,6 +19,7 @@ urlpatterns = [ path('billing/', views.BillingView.as_view(), name='billing'), path('bills//download/', views.BillDownloadView.as_view(), name='bill-download'), path('profile/', views.ProfileView.as_view(), name='profile'), + path('profile/setLang/', views.ProfileSetLang, name='profile-set-lang'), path('address/', views.MailView.as_view(), name='address-list'), path('address/new/', views.MailCreateView.as_view(), name='address-create'), path('address//', views.MailUpdateView.as_view(), name='address-update'), diff --git a/musician/views.py b/musician/views.py index 663f498..38cb794 100644 --- a/musician/views.py +++ b/musician/views.py @@ -1,3 +1,4 @@ +from audioop import reverse import logging from os import stat import smtplib @@ -6,7 +7,7 @@ from django.conf import settings from django.contrib import messages from django.core.exceptions import ImproperlyConfigured from django.core.mail import mail_managers -from django.http import HttpResponse, HttpResponseRedirect +from django.http import HttpResponse, HttpResponseNotFound, HttpResponseRedirect from django.shortcuts import render from django.urls import reverse_lazy from django.utils import translation @@ -125,6 +126,22 @@ class ProfileView(CustomContextMixin, UserTokenRequiredMixin, TemplateView): return context +def ProfileSetLang(request, code): + # set user language as active language + + if any(x[0] == code for x in settings.LANGUAGES): + # http://127.0.0.1:8080/profile/setLang/es + user_language = code + translation.activate(user_language) + + response = HttpResponseRedirect('/dashboard') + response.set_cookie(settings.LANGUAGE_COOKIE_NAME, user_language) + + return response + else: + response = HttpResponseNotFound('Languague not found') + return response + class ServiceListView(CustomContextMixin, ExtendedPaginationMixin, UserTokenRequiredMixin, ListView): """Base list view to all services"""