From 3ff466a0e93cd0c085ea970f2004ae0ab6ba78b3 Mon Sep 17 00:00:00 2001
From: Mattia Mancini <mancini@astron.nl>
Date: Tue, 14 Aug 2018 06:58:30 +0000
Subject: [PATCH] Story OSB-11: Included component error serialization in
 station test page

---
 .../DBInterface/monitoringdb/models/component_error.py        | 3 ++-
 .../DBInterface/monitoringdb/serializers/component_error.py   | 4 ++++
 .../DBInterface/monitoringdb/serializers/station_tests.py     | 2 ++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/LCU/Maintenance/DBInterface/monitoringdb/models/component_error.py b/LCU/Maintenance/DBInterface/monitoringdb/models/component_error.py
index ab5903e2a8c..ead4319aeed 100644
--- a/LCU/Maintenance/DBInterface/monitoringdb/models/component_error.py
+++ b/LCU/Maintenance/DBInterface/monitoringdb/models/component_error.py
@@ -7,7 +7,8 @@ from .error_details import ErrorDetails
 class ComponentError(models.Model):
     type = models.CharField(max_length=50)
     component = models.ForeignKey(Component, on_delete=models.DO_NOTHING)
-    station_test = models.ForeignKey(StationTest, on_delete=models.DO_NOTHING)
+    station_test = models.ForeignKey(StationTest, on_delete=models.DO_NOTHING,
+                                     related_name='component_errors')
     details = models.ForeignKey(ErrorDetails,
                                 on_delete=models.CASCADE,
                                 related_name='details',
diff --git a/LCU/Maintenance/DBInterface/monitoringdb/serializers/component_error.py b/LCU/Maintenance/DBInterface/monitoringdb/serializers/component_error.py
index c4fe57a7e3b..42e0b9c0109 100644
--- a/LCU/Maintenance/DBInterface/monitoringdb/serializers/component_error.py
+++ b/LCU/Maintenance/DBInterface/monitoringdb/serializers/component_error.py
@@ -9,3 +9,7 @@ class ComponentErrorSerializer(NotNullModelSerializer):
         model = ComponentError
         fields = '__all__'
         depth = 2
+
+    def __init__(self, *args, **kwargs):
+        self.Meta.depth = kwargs.pop('depth', 2)
+        super(ComponentErrorSerializer, self).__init__(*args, **kwargs)
diff --git a/LCU/Maintenance/DBInterface/monitoringdb/serializers/station_tests.py b/LCU/Maintenance/DBInterface/monitoringdb/serializers/station_tests.py
index bf66977bb75..4a2b5c895c0 100644
--- a/LCU/Maintenance/DBInterface/monitoringdb/serializers/station_tests.py
+++ b/LCU/Maintenance/DBInterface/monitoringdb/serializers/station_tests.py
@@ -1,7 +1,9 @@
 from rest_framework.serializers import ModelSerializer
 from ..models.station_test import StationTest
+from .component_error import ComponentErrorSerializer
 
 class StationTestSerializer(ModelSerializer):
+    component_errors = ComponentErrorSerializer(many=True, read_only=True, depth=0)
     class Meta:
         model = StationTest
         fields = '__all__'
-- 
GitLab