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