From 448e1100b23c369a50fc94ccb38efa558d8b0798 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Thu, 28 Jul 2022 10:17:47 -0400
Subject: [PATCH] Introduce SerializerWithIdNameSlugIsActive and
 LinkSerializer.

---
 program/serializers.py | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/program/serializers.py b/program/serializers.py
index 0196c9cf..cee5711d 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -160,12 +160,16 @@ class CategorySerializer(serializers.ModelSerializer):
         fields = ("id", "name", "subtitle", "slug", "is_active", "description")
 
 
-class HostLinkSerializer(serializers.ModelSerializer):
+class LinkSerializer(serializers.ModelSerializer):
     class Meta:
-        model = HostLink
         fields = ("description", "url")
 
 
+class HostLinkSerializer(LinkSerializer):
+    class Meta:
+        model = HostLink
+
+
 class HostSerializer(serializers.ModelSerializer):
     links = HostLinkSerializer(many=True, required=False)
     thumbnails = serializers.SerializerMethodField()
@@ -236,34 +240,34 @@ class LanguageSerializer(serializers.ModelSerializer):
         fields = ("id", "name", "is_active")
 
 
-class TopicSerializer(serializers.ModelSerializer):
+class SerializerWithIdNameSlugIsActive(serializers.ModelSerializer):
     class Meta:
-        model = Topic
         fields = ("id", "name", "slug", "is_active")
 
 
-class MusicFocusSerializer(serializers.ModelSerializer):
+class TopicSerializer(SerializerWithIdNameSlugIsActive):
+    class Meta:
+        model = Topic
+
+
+class MusicFocusSerializer(SerializerWithIdNameSlugIsActive):
     class Meta:
         model = MusicFocus
-        fields = ("id", "name", "slug", "is_active")
 
 
-class TypeSerializer(serializers.ModelSerializer):
+class TypeSerializer(SerializerWithIdNameSlugIsActive):
     class Meta:
         model = Type
-        fields = ("id", "name", "slug", "is_active")
 
 
-class FundingCategorySerializer(serializers.ModelSerializer):
+class FundingCategorySerializer(SerializerWithIdNameSlugIsActive):
     class Meta:
         model = FundingCategory
-        fields = ("id", "name", "slug", "is_active")
 
 
-class ShowLinkSerializer(serializers.ModelSerializer):
+class ShowLinkSerializer(LinkSerializer):
     class Meta:
         model = ShowLink
-        fields = ("description", "url")
 
 
 class ShowSerializer(serializers.HyperlinkedModelSerializer):
@@ -597,10 +601,9 @@ class TimeSlotSerializer(serializers.ModelSerializer):
         return instance
 
 
-class NoteLinkSerializer(serializers.ModelSerializer):
+class NoteLinkSerializer(LinkSerializer):
     class Meta:
         model = NoteLink
-        fields = ("description", "url")
 
 
 class NoteSerializer(serializers.ModelSerializer):
-- 
GitLab