diff --git a/panel/src/panel/templates/base.html b/panel/src/panel/templates/base.html index 86f1557..a068007 100644 --- a/panel/src/panel/templates/base.html +++ b/panel/src/panel/templates/base.html @@ -16,10 +16,11 @@
+ {% load custom_tags %} {% if user.is_authenticated %} -

Welcome, {{ user.username }}! Logout

+

Welcome, {{ user.username }}! Logout

{% else %} -

Login

+

Login

{% endif %}
{% block navigation %} diff --git a/panel/src/panel/templatetags/__init__.py b/panel/src/panel/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/panel/src/panel/templatetags/custom_tags.py b/panel/src/panel/templatetags/custom_tags.py new file mode 100644 index 0000000..563047e --- /dev/null +++ b/panel/src/panel/templatetags/custom_tags.py @@ -0,0 +1,16 @@ +from django import template +from django.urls import reverse +from urllib.parse import urlencode + +register = template.Library() + +@register.simple_tag(takes_context=True) +def auth_url(context, action): + """Generate login/logout URL with current path as redirect.""" + request = context['request'] + view = context.get('view') + redirect_field_name = getattr(view, 'redirect_field_name', 'next') + + base_url = reverse(action) + query_params = {redirect_field_name: request.path} + return f"{base_url}?{urlencode(query_params)}"