Refactor my-profile & fix set language

This commit is contained in:
Santiago L 2023-11-23 11:09:45 +01:00
parent 2e659dbc26
commit fc09f776c4
3 changed files with 15 additions and 11 deletions

View File

@ -94,7 +94,7 @@
</a> </a>
<div class="dropdown-menu"> <div class="dropdown-menu">
{% for code, language in languages %} {% for code, language in languages %}
<a class="dropdown-item" href="{% url 'musician:profile-set-lang' code %}">{{ language }}</a> <a class="dropdown-item" href="{% url 'musician:profile-set-lang' code %}?next={{ request.path }}">{{ language }}</a>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>

View File

@ -18,7 +18,7 @@
<div class="col-md-9"> <div class="col-md-9">
<p class="card-text">{{ profile.username }}</p> <p class="card-text">{{ profile.username }}</p>
<p class="card-text">{{ profile.type }}</p> <p class="card-text">{{ profile.type }}</p>
<p class="card-text">{% trans "Preferred language:" %} {{ profile.language|language_name_local }}</p> <p class="card-text">{% trans "Preferred language:" %} {{ preferred_language_code|language_name_local }}</p>
</div> </div>
{% comment %} {% comment %}
<!-- disabled until set_password is implemented --> <!-- disabled until set_password is implemented -->

View File

@ -1,4 +1,3 @@
import datetime
import logging import logging
import smtplib import smtplib
@ -123,13 +122,10 @@ class ProfileView(CustomContextMixin, UserTokenRequiredMixin, TemplateView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
try: user = self.request.user
pay_source = self.orchestra.retrieve_service_list(
PaymentSource.api_name)[0]
except IndexError:
pay_source = {}
context.update({ context.update({
'payment': PaymentSource.new_from_json(pay_source) 'payment': user.paymentsources.first(),
'preferred_language_code': user.language.lower(),
}) })
return context return context
@ -139,11 +135,19 @@ def profile_set_language(request, code):
# set user language as active language # set user language as active language
if any(x[0] == code for x in settings.LANGUAGES): if any(x[0] == code for x in settings.LANGUAGES):
# http://127.0.0.1:8080/profile/setLang/es
user_language = code user_language = code
translation.activate(user_language) translation.activate(user_language)
response = HttpResponseRedirect('/dashboard') redirect_to = request.GET.get('next', '')
url_is_safe = is_safe_url(
url=redirect_to,
allowed_hosts={request.get_host()},
require_https=request.is_secure(),
)
if not url_is_safe:
redirect_to = reverse_lazy(settings.LOGIN_REDIRECT_URL)
response = HttpResponseRedirect(redirect_to)
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, user_language) response.set_cookie(settings.LANGUAGE_COOKIE_NAME, user_language)
return response return response