From e48b72af69e47113a88fb3448f73ce06f278e89b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de> Date: Sun, 8 Nov 2020 16:28:07 +0100 Subject: [PATCH] Add link to AK details page to AKSlot change form --- AKModel/admin.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/AKModel/admin.py b/AKModel/admin.py index b0bae79c..48c1f878 100644 --- a/AKModel/admin.py +++ b/AKModel/admin.py @@ -7,7 +7,9 @@ from django.shortcuts import render from django.urls import path, reverse_lazy from django.utils import timezone from django.utils.html import format_html +from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ +from rest_framework.reverse import reverse from simple_history.admin import SimpleHistoryAdmin from AKModel.availability.forms import AvailabilitiesFormMixin @@ -212,7 +214,7 @@ class AKSlotAdmin(admin.ModelAdmin): list_editable = ['ak', 'room', 'start', 'duration'] ordering = ['start'] - readonly_fields = ['updated'] + readonly_fields = ['ak_details_link', 'updated'] def get_urls(self): urls = super().get_urls() @@ -242,6 +244,13 @@ class AKSlotAdmin(admin.ModelAdmin): kwargs['initial'] = Event.get_next_active() return super(AKSlotAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) + def ak_details_link(self, akslot): + if apps.is_installed("AKScheduling") and akslot.ak is not None: + link = f"<a href={reverse('submit:ak_detail', args=[akslot.event.slug, akslot.ak.pk])}>{str(akslot.ak)}</a>" + return mark_safe(link) + return "-" + ak_details_link.short_description = _('AK Details') + @admin.register(Availability) class AvailabilityAdmin(admin.ModelAdmin): -- GitLab