diff --git a/aleksis/core/templates/core/data_check/list.html b/aleksis/core/templates/core/data_check/list.html index 2482a2e0dcf1698ca07225740cf1611b0109bbee..016e12611c1569bbc39ebc040122975f16f3e3e0 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 8ca5be151d2edc39bf6787e9e51eabb3350714a0..792fccc6f5d2e0611bdef15fe82d3a940e34f1c7 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.