Source code for app_utils.urls
"""Utilities related to URLs."""
import re
from typing import Optional
from urllib.parse import urljoin
from django.conf import settings
from django.templatetags.static import static
from django.urls import reverse
# old: get_absolute_url
[docs]
def reverse_absolute(viewname: str, args: Optional[list] = None) -> str:
"""Return absolute URL for a view name.
Similar to Django's ``reverse()``, but returns an absolute URL.
"""
return urljoin(site_absolute_url(), reverse(viewname, args=args))
# TODO: Only enable for alliance auth
# old: get_site_base_url
[docs]
def site_absolute_url() -> str:
"""Return absolute URL for this Alliance Auth site."""
try:
match = re.match(r"(.+)\/sso\/callback", settings.ESI_SSO_CALLBACK_URL)
if match:
return match.group(1)
except AttributeError:
pass
return ""
[docs]
def static_file_absolute_url(file_path: str) -> str:
"""Return absolute URL to a static file.
Args:
file_path: relative path to a static file
"""
return urljoin(site_absolute_url(), static(file_path))