Skip to content
Snippets Groups Projects
Commit f05f8ce3 authored by Sara Savanovic Djordjevic's avatar Sara Savanovic Djordjevic
Browse files

fix: duplicate Data and Corner in Measurement

parent bf0beb15
Branches master
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
...@@ -6,7 +6,7 @@ import json ...@@ -6,7 +6,7 @@ import json
def get_all_markers(self, cursor, valid: bool): def get_all_markers(self, cursor, valid: bool):
try: try:
# NB: interval temporarily hard coded to 5 days # NB: interval temporarily hard coded to 5 days
if valid: # Fetch only valid markers (taken within last 5 days) if valid:
cursor.execute(''' cursor.execute('''
SELECT m.MeasurementID, m.SensorID, m.TimeMeasured, d.Latitude, d.Longitude, SELECT m.MeasurementID, m.SensorID, m.TimeMeasured, d.Latitude, d.Longitude,
d.IceTop, d.IceBottom, d.CalculatedThickness, d.Accuracy, s.SensorType, s.Active, d.IceTop, d.IceBottom, d.CalculatedThickness, d.Accuracy, s.SensorType, s.Active,
...@@ -14,21 +14,21 @@ def get_all_markers(self, cursor, valid: bool): ...@@ -14,21 +14,21 @@ def get_all_markers(self, cursor, valid: bool):
FROM Measurement m FROM Measurement m
INNER JOIN Sensor s ON m.SensorID = s.SensorID INNER JOIN Sensor s ON m.SensorID = s.SensorID
INNER JOIN Data d ON m.MeasurementID = d.MeasurementID INNER JOIN Data d ON m.MeasurementID = d.MeasurementID
INNER JOIN Corner c ON m.MeasurementID = c.MeasurementID LEFT JOIN Corner c ON m.MeasurementID = c.MeasurementID
INNER JOIN BodyOfWater b ON m.WaterBodyName = b.Name INNER JOIN BodyOfWater b ON m.WaterBodyName = b.Name
WHERE m.TimeMeasured > DATE_SUB(NOW(), INTERVAL 5 DAY); WHERE m.TimeMeasured > DATE_SUB(NOW(), INTERVAL 5 DAY);
''') ''')
else: # Fetch all markers else:
cursor.execute(''' cursor.execute('''
SELECT m.MeasurementID, m.SensorID, m.TimeMeasured, d.Latitude, d.Longitude, SELECT m.MeasurementID, m.SensorID, m.TimeMeasured, d.Latitude, d.Longitude,
d.IceTop, d.IceBottom, d.CalculatedThickness, d.Accuracy, s.SensorType, s.Active, d.IceTop, d.IceBottom, d.CalculatedThickness, d.Accuracy, s.SensorType, s.Active,
c.CornerID, c.CornerLatitude, c.CornerLongitude, b.Name c.CornerID, c.CornerLatitude, c.CornerLongitude, b.Name
FROM Measurement m FROM Measurement m
INNER JOIN Sensor s ON m.SensorID = s.SensorID INNER JOIN Sensor s ON m.SensorID = s.SensorID
INNER JOIN Data d ON m.MeasurementID = d.MeasurementID INNER JOIN Data d ON m.MeasurementID = d.MeasurementID
INNER JOIN BodyOfWater b ON m.WaterBodyName = b.Name LEFT JOIN Corner c ON m.MeasurementID = c.MeasurementID
INNER JOIN Corner c ON m.MeasurementID = c.MeasurementID INNER JOIN BodyOfWater b ON m.WaterBodyName = b.Name
''') ''')
rows = cursor.fetchall() rows = cursor.fetchall()
...@@ -54,10 +54,15 @@ def get_all_markers(self, cursor, valid: bool): ...@@ -54,10 +54,15 @@ def get_all_markers(self, cursor, valid: bool):
'Longitude': row[13] 'Longitude': row[13]
} }
# If measurement ID already exists in measurement_data, append data and corner # Check if measurement ID already exists in measurement_data
if measurement_id in measurement_data: if measurement_id in measurement_data:
measurement_data[measurement_id]['Data'].append(data_object) # Check if the data object already exists in the list
measurement_data[measurement_id]['Corners'].append(corner_object) if data_object not in measurement_data[measurement_id]['Data']:
measurement_data[measurement_id]['Data'].append(data_object)
# Check if the corner object already exists in the list
if corner_object not in measurement_data[measurement_id]['Corners']:
measurement_data[measurement_id]['Corners'].append(corner_object)
else: else:
# Create a new entry for measurement_id if it does not already exist in the list # Create a new entry for measurement_id if it does not already exist in the list
measurement_data[measurement_id] = { measurement_data[measurement_id] = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment