Skip to content

Commit b002bb4

Browse files
authored
Merge pull request #18 from wmo-raf/dev
Add default forecast parameters if does not exist
2 parents 85eff1e + b1bfc96 commit b002bb4

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

forecastmanager/management/commands/generate_forecast.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from django.core.management.base import BaseCommand
66
from wagtail.models import Site
77

8-
from forecastmanager.forecast_settings import ForecastSetting, WeatherCondition, ForecastPeriod
8+
from forecastmanager.forecast_settings import ForecastSetting, WeatherCondition, ForecastPeriod, ForecastDataParameters
99
from forecastmanager.models import City, CityForecast, DataValue, Forecast
1010
from forecastmanager.constants import WEATHER_CONDITIONS_AS_DICT
1111

@@ -46,6 +46,20 @@ def handle(self, *args, **options):
4646
conditions_by_symbol = {condition.symbol: condition for condition in conditions}
4747

4848
parameters = forecast_setting.data_parameters.all()
49+
if not parameters.exists():
50+
# create default forecast parameters
51+
default_parameters = [
52+
{"parameter": "air_temperature_max", "name": "Maximum Air Temperature", "parameter_unit": "°C"},
53+
{"parameter": "air_temperature_min", "name": "Minimum Air Temperature", "parameter_unit": "°C"},
54+
{"parameter": "wind_speed", "name": "Wind Speed", "parameter_unit": "m/s"},
55+
{"parameter": "precipitation_amount", "name": "Precipitation Amount", "parameter_unit": "mm"}
56+
]
57+
58+
for default_parameter in default_parameters:
59+
ForecastDataParameters.objects.create(parent=forecast_setting, **default_parameter)
60+
61+
parameters = forecast_setting.data_parameters.all()
62+
4963
parameters_dict = {parameter.parameter: parameter for parameter in parameters}
5064

5165
forecast_periods = forecast_setting.periods.all()
@@ -83,6 +97,7 @@ def handle(self, *args, **options):
8397
data = response.json()
8498

8599
day_intervals = data['dayIntervals']
100+
86101
for day in day_intervals[:8]:
87102
date = parse(day.get("start"))
88103
condition = day.get("twentyFourHourSymbol")

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = forecastmanager
3-
version = 0.4.5
3+
version = 0.4.6
44
description = Integration of Weather City Forecasts Manager in Wagtail Projects.
55
long_description = file:README.md
66
long_description_content_type = text/markdown

0 commit comments

Comments
 (0)