From e24f927a7f762ea70624b1639addedfb3aa66098 Mon Sep 17 00:00:00 2001 From: Andreas Hubel <andi@saerdnaer.de> Date: Sat, 21 Dec 2024 22:42:30 +0100 Subject: [PATCH] chore(scheduleadmin): add some a-href's to simplfy debugging process --- .../templates/backoffice/schedule_source-detail.html | 4 ++-- .../backoffice/schedule_source_import-detail.html | 2 +- src/core/models/rooms.py | 5 +++++ src/core/models/schedules.py | 12 ++++++++++++ src/core/models/shared.py | 6 ++++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/backoffice/templates/backoffice/schedule_source-detail.html b/src/backoffice/templates/backoffice/schedule_source-detail.html index 2122ae2de..60aeb76e7 100644 --- a/src/backoffice/templates/backoffice/schedule_source-detail.html +++ b/src/backoffice/templates/backoffice/schedule_source-detail.html @@ -20,7 +20,7 @@ </div> <div class="card-body"> <p> - Assembly: <strong>{{ object.assembly|default:"<em>WILDCARD</em>" }}</strong> + Assembly: <strong><a href="{% url 'backoffice:assembly-edit' pk=object.assembly.id %}">{{ object.assembly|default:"<em>WILDCARD</em>" }}</a></strong> </p> <p> Type: <strong>{{ object.import_type }}</strong> @@ -109,7 +109,7 @@ <tr> <td>{{ mapping.get_mapping_type_display }}</td> <td>{{ mapping.source_id|default:"-" }}</td> - <td>{{ mapping.local_id|default:"-" }}</td> + <td><a href="{{ mapping.local_url }}">{{ mapping.local_id|default:"-" }}</a></td> <td>{{ mapping.skip|yesno }}</td> <td> </td> </tr> diff --git a/src/backoffice/templates/backoffice/schedule_source_import-detail.html b/src/backoffice/templates/backoffice/schedule_source_import-detail.html index 8b7e2c259..ec3be0302 100644 --- a/src/backoffice/templates/backoffice/schedule_source_import-detail.html +++ b/src/backoffice/templates/backoffice/schedule_source_import-detail.html @@ -95,7 +95,7 @@ {{ item.source_id|default:"-/-" }} </td> <td class="{% if item.action == "seen" %}text-muted{% elif item.action == "error" %}text-danger{% elif item.action == "missing" or item.action == "removed" %}text-warning{% elif item.action == "added" %}text-success{% endif %}"> - {{ item.local_id|default:"-/-" }} + <a href="{{ item.local_url }}">{{ item.local_id|default:"-/-" }}</a> </td> </tr> {% endfor %} diff --git a/src/core/models/rooms.py b/src/core/models/rooms.py index f614d7ee2..cd783c94a 100644 --- a/src/core/models/rooms.py +++ b/src/core/models/rooms.py @@ -273,6 +273,11 @@ class Room(BackendMixin, models.Model): return link.link return None + def get_absolute_url(self): + from core.templatetags.hub_absolute import hub_absolute # pylint: disable=import-outside-toplevel + + return hub_absolute('plainui:room', slug=self.slug, i18n=settings.ARCHIVE_MODE) + def __create_slug(self, extension='', max_length: int = 50): """ recursive function to generate a free room slug based on the room name diff --git a/src/core/models/schedules.py b/src/core/models/schedules.py index 647c0b419..c47dad72c 100644 --- a/src/core/models/schedules.py +++ b/src/core/models/schedules.py @@ -690,6 +690,18 @@ class ScheduleSourceMapping(models.Model): # we don't know about that mapping type, bail out raise LocalObjectAccessViolation('Unknown mapping.') + @property + def local_url(self): + if self.mapping_type == self.MappingType.ROOM: + return Room.admin_url(self.local_id) + + if self.mapping_type == self.MappingType.EVENT: + return Event.admin_url(self.local_id) + if self.mapping_type == self.MappingType.SPEAKER: + return '' + + return '' + @property def local_object(self): if self._local_object is None: diff --git a/src/core/models/shared.py b/src/core/models/shared.py index 77d69925d..967c37ee6 100644 --- a/src/core/models/shared.py +++ b/src/core/models/shared.py @@ -3,6 +3,12 @@ from django.utils.translation import gettext_lazy as _ class BackendMixin(models.Model): + @classmethod + def admin_url(cls, pk): + from django.urls import reverse + + return reverse(f'admin:{cls._meta.app_label}_{cls._meta.model_name}_change', args=[pk]) + class Meta: abstract = True -- GitLab