From edd0079b405d7f7efc2dbb63c19601a654ce28e6 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Mon, 1 Jul 2024 20:27:47 -0400
Subject: [PATCH] fix: handle different instances better

---
 program/utils.py | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/program/utils.py b/program/utils.py
index 591dbdfd..ea233909 100644
--- a/program/utils.py
+++ b/program/utils.py
@@ -30,6 +30,8 @@ from django.utils import timezone
 
 if typing.TYPE_CHECKING:
     from program.models import Host, HostLink, Note, NoteLink, Show, ShowLink
+else:
+    from program.models import Host, HostLink, Note, NoteLink, Show, ShowLink
 
 
 class Link(TypedDict):
@@ -149,15 +151,16 @@ def update_links(
         for link in instance.links.all():
             link.delete(keep_parents=True)
 
-    match type(instance):
-        case "Host":
-            for link_data in links:
-                HostLink.objects.create(host=instance, **link_data)
-        case "Note":
-            for link_data in links:
-                NoteLink.objects.create(note=instance, **link_data)
-        case "Show":
-            for link_data in links:
-                ShowLink.objects.create(show=instance, **link_data)
+    if isinstance(instance, Host):
+        for link_data in links:
+            HostLink.objects.create(host=instance, **link_data)
+
+    if isinstance(instance, Note):
+        for link_data in links:
+            NoteLink.objects.create(note=instance, **link_data)
+
+    if isinstance(instance, Show):
+        for link_data in links:
+            ShowLink.objects.create(show=instance, **link_data)
 
     return instance
-- 
GitLab