From 6fe835bbb8efbf6b5c7bc5dd24832897e1797ff9 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Wed, 31 Jan 2024 16:39:46 -0400
Subject: [PATCH] feat: deactivate instead of delete a link type

---
 program/views.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/program/views.py b/program/views.py
index 237edb3a..ba5d807a 100644
--- a/program/views.py
+++ b/program/views.py
@@ -886,6 +886,17 @@ class APILinkTypeViewSet(viewsets.ModelViewSet):
     queryset = LinkType.objects.all()
     serializer_class = LinkTypeSerializer
 
+    def destroy(self, request, *args, **kwargs):
+        """Destroying a link type just makes is inactive.
+
+        This is needed to preserve all the links that reference a link type."""
+
+        link_type = self.get_object()
+        link_type.is_active = False
+        link_type.save()
+
+        return Response(status=status.HTTP_204_NO_CONTENT)
+
 
 @extend_schema_view(
     create=extend_schema(summary="Create a new license type."),
-- 
GitLab