@@ -151,19 +151,6 @@ def get_latest_forecast(
151
151
query = query .filter (LocationSQL .gsp_id == gsp_id )
152
152
order_by_items .append (LocationSQL .gsp_id )
153
153
154
- # get the correct forecast value table
155
- if historic :
156
- data_model_forecast_value = ForecastValueLatestSQL
157
- else :
158
- data_model_forecast_value = ForecastValueSQL
159
-
160
- # join forecast values
161
- query = query .join (data_model_forecast_value )
162
-
163
- # filter by target time
164
- if start_target_time is not None :
165
- query = query .filter (data_model_forecast_value .target_time >= start_target_time )
166
-
167
154
order_by_items .append (ForecastSQL .created_utc .desc ())
168
155
169
156
# this make the newest ones comes to the top
@@ -172,6 +159,23 @@ def get_latest_forecast(
172
159
# get all results
173
160
forecasts = query .first ()
174
161
162
+ # filter on target time
163
+ if start_target_time is not None :
164
+
165
+ # get the correct forecast value table
166
+ if historic :
167
+ data_model_forecast_value = ForecastValueLatestSQL
168
+ else :
169
+ data_model_forecast_value = ForecastValueSQL
170
+
171
+ forecast_values = session .query (data_model_forecast_value ).\
172
+ filter (data_model_forecast_value .target_time >= start_target_time ).\
173
+ filter (forecasts .id == data_model_forecast_value .forecast_id ). \
174
+ order_by (data_model_forecast_value .target_time ).\
175
+ all ()
176
+
177
+ forecasts .forecast_values_latest = forecast_values
178
+
175
179
# sort list
176
180
if forecasts is not None :
177
181
if forecasts .forecast_values_latest is not None :
0 commit comments