From 62036eee21f912b6f686bb30574f9ac6b47bccab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?=
 <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de>
Date: Wed, 7 Oct 2020 15:03:46 +0200
Subject: [PATCH] Add AK owner links to wiki export

This will try to automatically detect whether wiki or external links were used
Implements #90
---
 AKModel/templates/admin/AKModel/wiki_export.html |  4 +++-
 AKModel/templatetags/tags_AKModel.py             | 14 ++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/AKModel/templates/admin/AKModel/wiki_export.html b/AKModel/templates/admin/AKModel/wiki_export.html
index 555742ef..03512c67 100644
--- a/AKModel/templates/admin/AKModel/wiki_export.html
+++ b/AKModel/templates/admin/AKModel/wiki_export.html
@@ -1,5 +1,7 @@
 {% extends "admin/base_site.html" %}
 
+{% load tags_AKModel %}
+
 {% block content %}
 
 {% regroup AKs by category as ak_list %}
@@ -12,7 +14,7 @@
 | name={{ ak.name }}
 | beschreibung= {{ ak.description }}
 | wieviele={{ ak.interest_counter }}
-| wer={{ ak.owners_list }}
+| wer={{ ak.owners|wiki_owners_export:ak.event }}
 | wann=
 | dauer={{ ak.durations_list }}
 | reso={{ ak.reso }}
diff --git a/AKModel/templatetags/tags_AKModel.py b/AKModel/templatetags/tags_AKModel.py
index 69133913..3bec0320 100644
--- a/AKModel/templatetags/tags_AKModel.py
+++ b/AKModel/templatetags/tags_AKModel.py
@@ -25,3 +25,17 @@ def message_bootstrap_class(tag):
     elif tag == "warning":
         return "alert-warning"
     return "alert-info"
+
+
+@register.filter
+def wiki_owners_export(owners, event):
+    def to_link(owner):
+        if owner.link != '':
+            event_link_prefix, _ = event.base_url.rsplit("/", 1)
+            link_prefix, link_end = owner.link.rsplit("/", 1)
+            if event_link_prefix == link_prefix:
+                return f"[[{link_end}|{str(owner)}]]"
+            return f"[{owner.link} {str(owner)}]"
+        return str(owner)
+
+    return ", ".join(to_link(owner) for owner in owners.all())
-- 
GitLab