From 7410028110469e708908ee268f51937890789ce0 Mon Sep 17 00:00:00 2001
From: Gabriel Detraz <detraz@crans.org>
Date: Thu, 17 Sep 2020 14:28:54 +0200
Subject: [PATCH] Fix, deleted the bad switchport serializer

---
 topologie/api/serializers.py | 56 +++++++++++++++++++-----------------
 1 file changed, 30 insertions(+), 26 deletions(-)

diff --git a/topologie/api/serializers.py b/topologie/api/serializers.py
index 2006708b..b11a7ffa 100644
--- a/topologie/api/serializers.py
+++ b/topologie/api/serializers.py
@@ -124,32 +124,6 @@ class DormitorySerializer(NamespacedHMSerializer):
         model = topologie.Dormitory
         fields = ("name", "api_url")
 
-class SwitchPortSerializer(NamespacedHMSerializer):
-    """Serialize `topologie.models.Port` objects
-    """
-
-    get_port_profile = NamespacedHIField(view_name="portprofile-detail", read_only=True)
-
-    class Meta:
-        model = topologie.Port
-        fields = (
-            "switch",
-            "port",
-            "room",
-            "machine_interface",
-            "related",
-            "custom_profile",
-            "state",
-            "get_port_profile",
-            "details",
-            "api_url",
-        )
-        extra_kwargs = {
-            "related": {"view_name": "switchport-detail"},
-            "api_url": {"view_name": "switchport-detail"},
-        }
-
-
 class PortProfileSerializer(NamespacedHMSerializer):
     """Serialize `topologie.models.Room` objects
     """
@@ -299,3 +273,33 @@ class PortsSerializer(NamespacedHMSerializer):
     class Meta:
         model = topologie.Port
         fields = ("state", "port", "pretty_name", "get_port_profile")
+
+
+class SwitchPortSerializer(serializers.ModelSerializer):
+    """Serialize the data about the switches"""
+
+    ports = PortsSerializer(many=True, read_only=True)
+    model = ModelSwitchSerializer(read_only=True)
+    switchbay = SwitchBaySerializer(read_only=True)
+
+    class Meta:
+        model = topologie.Switch
+        fields = (
+            "short_name",
+            "model",
+            "switchbay",
+            "ports",
+            "ipv4",
+            "ipv6",
+            "interfaces_subnet",
+            "interfaces6_subnet",
+            "automatic_provision",
+            "rest_enabled",
+            "web_management_enabled",
+            "get_radius_key_value",
+            "get_management_cred_value",
+            "get_radius_servers",
+            "list_modules",
+        )
+
+