feat: login redirection

This commit is contained in:
Pablo Moreno
2025-01-18 20:07:55 +01:00
parent 249521aa4a
commit 88684dac43
3 changed files with 62 additions and 21 deletions
+8 -6
View File
@@ -1,5 +1,3 @@
import urllib
from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib.auth import login as login_user
@@ -32,8 +30,12 @@ class LoginView(View, RedirectionMixin):
login_form_class = LoginForm
def get_redirection(self):
query_param_string = urlencode(self.request.GET)
return f'{reverse(self.redirect_to)}?{query_param_string.join("")}'
next_page = self.request.GET.get('next', '')
if next_page:
return f'{reverse(self.redirect_to)}?next={next_page}'
return reverse(self.redirect_to)
def get_login_form(self, request):
return self.login_form_class(data=request.POST)
@@ -42,7 +44,7 @@ class LoginView(View, RedirectionMixin):
if request.user.is_authenticated:
return redirect(self.get_redirection())
settings = WebSettings.load()
web_settings = WebSettings.load()
login_form = self.login_form_class()
return render(
@@ -50,7 +52,7 @@ class LoginView(View, RedirectionMixin):
self.template_name,
{
"form": login_form,
"title": settings.web_title,
"title": web_settings.web_title,
"description": _("inicio de sesión"),
},
)
+6
View File
@@ -35,6 +35,12 @@ class IndexView(TemplateView):
"description": settings.web_description,
}
def get(self, request, *args, **kwargs):
if self.request.GET.get('next'):
return redirect(self.request.GET.get('next'))
return super().get(request, *args, **kwargs)
class CategoryView(TemplateView):
template_name = "web/index.html"