From bf06fff3f60a0eb9100e83346d883efd3c9f2d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20Kr=C3=BCger?= <jonathan.krueger@teckids.org> Date: Fri, 28 Apr 2023 19:55:00 +0200 Subject: [PATCH] Add url prefix template filter --- .../core/templates/core/data_check/list.html | 3 ++- aleksis/core/templatetags/html_helpers.py | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/aleksis/core/templates/core/data_check/list.html b/aleksis/core/templates/core/data_check/list.html index 2482a2e0d..016e12611 100644 --- a/aleksis/core/templates/core/data_check/list.html +++ b/aleksis/core/templates/core/data_check/list.html @@ -2,6 +2,7 @@ {% extends "core/base.html" %} {% load data_helpers %} +{% load html_helpers %} {% load i18n %} {% load render_table from django_tables2 %} @@ -59,7 +60,7 @@ <td>{{ result.related_object }}</td> <td>{{ result.related_check.problem_name }}</td> <td> - <a class="btn-flat waves-effect waves-light" href="{{ result.related_object.get_absolute_url }}" target="blank"> + <a class="btn-flat waves-effect waves-light" href="{{ result.related_object.get_absolute_url|remove_prefix:"/django/" }}" target="_blank"> {% trans "Show object" %} </a> </td> diff --git a/aleksis/core/templatetags/html_helpers.py b/aleksis/core/templatetags/html_helpers.py index 8ca5be151..792fccc6f 100644 --- a/aleksis/core/templatetags/html_helpers.py +++ b/aleksis/core/templatetags/html_helpers.py @@ -1,6 +1,8 @@ import random import string +from urllib.parse import urlparse + from django import template from django.shortcuts import reverse @@ -28,6 +30,24 @@ def add_class_to_el(value: str, arg: str) -> str: return str(soup) +@register.filter +def remove_prefix(value: str, prefix: str) -> str: + """Remove prefix of a url + + :Example: + + .. code-block:: + + {{ object.get_absolute_url|remove_prefix: "/django/" }} + """ + url = urlparse(value) + + if url.path.startswith(prefix): + url = url._replace(path=url.path[len(prefix):]) + + return url.geturl() + + @register.simple_tag def generate_random_id(prefix: str, length: int = 10) -> str: """Generate a random ID for templates. -- GitLab