diff --git a/events/models.py b/events/models.py
index 24ca152..d7e89d3 100644
--- a/events/models.py
+++ b/events/models.py
@@ -5,6 +5,7 @@ import uuid
from django.db import models
from django.db.utils import IntegrityError
from django.db.models import Min, Max
+from django.utils.functional import cached_property
from projects.models import Project
from compat.timestamp import parse_timestamp
@@ -286,3 +287,9 @@ class Event(models.Model):
def has_next(self):
return self.digest_order < self.get_digest_order_bounds()[1]
+
+ @cached_property
+ def get_tags(self):
+ return list(
+ self.tags.all().select_related("value", "value__key").order_by("value__key__key")
+ )
diff --git a/issues/templates/issues/event_details.html b/issues/templates/issues/event_details.html
index 548593b..294119c 100644
--- a/issues/templates/issues/event_details.html
+++ b/issues/templates/issues/event_details.html
@@ -58,14 +58,14 @@
{% endif %}
-{% if parsed_data.tags %}
+{% if event.tags %}
Tags
- {% for key, value in parsed_data.tags|items %}
+ {% for tag in event.get_tags %}
-
{{ key }}
-
{{ value }}
+
{{ tag.value.key.key }}
+
{{ tag.value.value }}
{% endfor %}
diff --git a/tags/migrations/0001_initial.py b/tags/migrations/0001_initial.py
index e8fcf22..2abaf19 100644
--- a/tags/migrations/0001_initial.py
+++ b/tags/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 4.2.19 on 2025-03-03 09:42
+# Generated by Django 4.2.19 on 2025-03-03 10:28
from django.db import migrations, models
import django.db.models.deletion
@@ -9,9 +9,9 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
- ("issues", "0010_issue_list_indexes"),
- ("events", "0019_event_storage_backend"),
("projects", "0011_fill_stored_event_count"),
+ ("events", "0019_event_storage_backend"),
+ ("issues", "0010_issue_list_indexes"),
]
operations = [
@@ -164,6 +164,12 @@ class Migration(migrations.Migration):
name="issuetag",
unique_together={("value", "issue")},
),
+ migrations.AddIndex(
+ model_name="eventtag",
+ index=models.Index(
+ fields=["event", "value"], name="tags_eventt_event_i_86e88e_idx"
+ ),
+ ),
migrations.AlterUniqueTogether(
name="eventtag",
unique_together={("value", "event")},
diff --git a/tags/models.py b/tags/models.py
index 21c4ad3..c148320 100644
--- a/tags/models.py
+++ b/tags/models.py
@@ -72,6 +72,9 @@ class EventTag(models.Model):
class Meta:
unique_together = ('value', 'event')
+ indexes = [
+ models.Index(fields=['event', 'value']), # make lookups by event (for details page) faster
+ ]
# class GroupingTag is not needed (not even for future-proofing); it would only be needed if you'd want to "unmerge"