diff --git a/VIPSWeb/locale/bg/LC_MESSAGES/django.po b/VIPSWeb/locale/bg/LC_MESSAGES/django.po
index d6868ec03337301c99545de1bdb03a141f6a3ca2..2aeefa54bb22ee38a37ac81924f4c3cb4c55ef87 100755
--- a/VIPSWeb/locale/bg/LC_MESSAGES/django.po
+++ b/VIPSWeb/locale/bg/LC_MESSAGES/django.po
@@ -19,7 +19,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: 2014-05-14 09:31+0200\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -30,6 +30,38 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 1.6.5\n"
 
+#: VIPSWeb/local_settings.py:206
+msgid "Risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:210
+msgid "About risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:214
+msgid "Naerstad Late Blight Model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:218
+msgid "Carrot rust fly temperature model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:229
+msgid "Cereals and oilseeds"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:240
+msgid "Potato and vegetables"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:246
+msgid "Fruits and berries"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:253
+msgid "Other models and services"
+msgstr ""
+
 #: VIPSWeb/templates/404.html:3 VIPSWeb/templates/404.html:5
 msgid "File not found"
 msgstr ""
diff --git a/VIPSWeb/locale/bs/LC_MESSAGES/django.po b/VIPSWeb/locale/bs/LC_MESSAGES/django.po
index 8fd8d1ad447b3518f6f79c8889c579261a5c85f5..07410c4e793cf48a44eed1d15fb3309fc6c7a93d 100755
--- a/VIPSWeb/locale/bs/LC_MESSAGES/django.po
+++ b/VIPSWeb/locale/bs/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: 2015-02-13 11:26+0100\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -19,6 +19,38 @@ msgstr ""
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Poedit 1.7.4\n"
 
+#: VIPSWeb/local_settings.py:206
+msgid "Risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:210
+msgid "About risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:214
+msgid "Naerstad Late Blight Model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:218
+msgid "Carrot rust fly temperature model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:229
+msgid "Cereals and oilseeds"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:240
+msgid "Potato and vegetables"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:246
+msgid "Fruits and berries"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:253
+msgid "Other models and services"
+msgstr ""
+
 #: VIPSWeb/templates/404.html:3 VIPSWeb/templates/404.html:5
 msgid "File not found"
 msgstr ""
diff --git a/VIPSWeb/locale/de/LC_MESSAGES/django.po b/VIPSWeb/locale/de/LC_MESSAGES/django.po
index 5d566efd25980f7d95521432735a39e1f598fb08..f34bec25c36076d55838b006831096d7b0d9739d 100755
--- a/VIPSWeb/locale/de/LC_MESSAGES/django.po
+++ b/VIPSWeb/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+#: VIPSWeb/local_settings.py:206
+msgid "Risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:210
+msgid "About risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:214
+msgid "Naerstad Late Blight Model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:218
+msgid "Carrot rust fly temperature model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:229
+msgid "Cereals and oilseeds"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:240
+msgid "Potato and vegetables"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:246
+msgid "Fruits and berries"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:253
+msgid "Other models and services"
+msgstr ""
+
 #: VIPSWeb/templates/404.html:3 VIPSWeb/templates/404.html:5
 msgid "File not found"
 msgstr ""
diff --git a/VIPSWeb/locale/fi/LC_MESSAGES/django.po b/VIPSWeb/locale/fi/LC_MESSAGES/django.po
index a8d6ee75c3aa6e01a800c98ff451b760b60b88a9..203065e478172b6853640fc2b01e0fe80987b607 100755
--- a/VIPSWeb/locale/fi/LC_MESSAGES/django.po
+++ b/VIPSWeb/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+#: VIPSWeb/local_settings.py:206
+msgid "Risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:210
+msgid "About risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:214
+msgid "Naerstad Late Blight Model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:218
+msgid "Carrot rust fly temperature model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:229
+msgid "Cereals and oilseeds"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:240
+msgid "Potato and vegetables"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:246
+msgid "Fruits and berries"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:253
+msgid "Other models and services"
+msgstr ""
+
 #: VIPSWeb/templates/404.html:3 VIPSWeb/templates/404.html:5
 msgid "File not found"
 msgstr ""
diff --git a/VIPSWeb/locale/nb/LC_MESSAGES/django.mo b/VIPSWeb/locale/nb/LC_MESSAGES/django.mo
index 6e6787af22a0b68014df65a1b893ccb2cb96cb74..f4270641c7b7d8cf8bffb7162126d73cfe04eed7 100755
Binary files a/VIPSWeb/locale/nb/LC_MESSAGES/django.mo and b/VIPSWeb/locale/nb/LC_MESSAGES/django.mo differ
diff --git a/VIPSWeb/locale/nb/LC_MESSAGES/django.po b/VIPSWeb/locale/nb/LC_MESSAGES/django.po
index f1cb3ca41060326ae4a9f32e6354b43e05254573..ca9f01702a55824569c9c1887ded29b683f14439 100755
--- a/VIPSWeb/locale/nb/LC_MESSAGES/django.po
+++ b/VIPSWeb/locale/nb/LC_MESSAGES/django.po
@@ -19,7 +19,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VIPSWeb\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: 2024-03-22 09:25+0100\n"
 "Last-Translator: Tor-Einar Skog <tor-einar.skog@nibio.no>\n"
 "Language-Team: \n"
@@ -30,6 +30,38 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 3.4.2\n"
 
+#: VIPSWeb/local_settings.py:206
+msgid "Risk maps"
+msgstr "Risikokart"
+
+#: VIPSWeb/local_settings.py:210
+msgid "About risk maps"
+msgstr "Om risikokart"
+
+#: VIPSWeb/local_settings.py:214
+msgid "Naerstad Late Blight Model"
+msgstr "Nærstads modell"
+
+#: VIPSWeb/local_settings.py:218
+msgid "Carrot rust fly temperature model"
+msgstr "Gulrotflue svermetidspunktmodell"
+
+#: VIPSWeb/local_settings.py:229
+msgid "Cereals and oilseeds"
+msgstr "Korn og oljevekster"
+
+#: VIPSWeb/local_settings.py:240
+msgid "Potato and vegetables"
+msgstr "Poteter og grønnsaker"
+
+#: VIPSWeb/local_settings.py:246
+msgid "Fruits and berries"
+msgstr "Frukt og bær"
+
+#: VIPSWeb/local_settings.py:253
+msgid "Other models and services"
+msgstr "Andre modeller og tjenester"
+
 #: VIPSWeb/templates/404.html:3 VIPSWeb/templates/404.html:5
 msgid "File not found"
 msgstr "Fil ikke funnet"
@@ -198,29 +230,5 @@ msgstr "Modeller fra IPM Decisions"
 msgid "Saddle gall midge"
 msgstr "Salgallmygg"
 
-#~ msgid "Risk maps"
-#~ msgstr "Risikokart"
-
-#~ msgid "About risk maps"
-#~ msgstr "Om risikokart"
-
 #~ msgid "Septoria reference humidity model"
 #~ msgstr "Septoria referansefuktmodell"
-
-#~ msgid "Carrot rust fly temperature model"
-#~ msgstr "Gulrotflue svermetidspunktmodell"
-
-#~ msgid "Cereals and oilseeds"
-#~ msgstr "Korn og oljevekster"
-
-#~ msgid "Potato and vegetables"
-#~ msgstr "Poteter og grønnsaker"
-
-#~ msgid "Fruits and berries"
-#~ msgstr "Frukt og bær"
-
-#~ msgid "Other models and services"
-#~ msgstr "Andre modeller og tjenester"
-
-#~ msgid "Naerstad Late Blight Model"
-#~ msgstr "Nærstads modell"
diff --git a/VIPSWeb/locale/vi/LC_MESSAGES/django.po b/VIPSWeb/locale/vi/LC_MESSAGES/django.po
index fddb506111e918c6bc701beb603ac70d92af0c8b..ce2b66db6d295acf3766c68bb662573c84bd8b2c 100755
--- a/VIPSWeb/locale/vi/LC_MESSAGES/django.po
+++ b/VIPSWeb/locale/vi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+#: VIPSWeb/local_settings.py:206
+msgid "Risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:210
+msgid "About risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:214
+msgid "Naerstad Late Blight Model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:218
+msgid "Carrot rust fly temperature model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:229
+msgid "Cereals and oilseeds"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:240
+msgid "Potato and vegetables"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:246
+msgid "Fruits and berries"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:253
+msgid "Other models and services"
+msgstr ""
+
 #: VIPSWeb/templates/404.html:3 VIPSWeb/templates/404.html:5
 msgid "File not found"
 msgstr "File không tìm thấy"
diff --git a/VIPSWeb/locale/zh_Hans/LC_MESSAGES/django.mo b/VIPSWeb/locale/zh_Hans/LC_MESSAGES/django.mo
index ea3b4ec465f5f377c42f225e37df0bc01ecdc5b0..5aff4d0b67b3df1fe4431b16e46306c2539c48b3 100644
Binary files a/VIPSWeb/locale/zh_Hans/LC_MESSAGES/django.mo and b/VIPSWeb/locale/zh_Hans/LC_MESSAGES/django.mo differ
diff --git a/VIPSWeb/locale/zh_Hans/LC_MESSAGES/django.po b/VIPSWeb/locale/zh_Hans/LC_MESSAGES/django.po
index 59639d5033e1232cd0a66deb163df1aff3e23252..ab5ded95f42fd83833031105b8a6455def97fa09 100644
--- a/VIPSWeb/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/VIPSWeb/locale/zh_Hans/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: 2019-06-24 12:21+0200\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -17,6 +17,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 2.0.6\n"
 
+#: VIPSWeb/local_settings.py:206
+msgid "Risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:210
+msgid "About risk maps"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:214
+msgid "Naerstad Late Blight Model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:218
+msgid "Carrot rust fly temperature model"
+msgstr ""
+
+#: VIPSWeb/local_settings.py:229
+msgid "Cereals and oilseeds"
+msgstr "谷物和油籽"
+
+#: VIPSWeb/local_settings.py:240
+msgid "Potato and vegetables"
+msgstr "土豆和蔬菜"
+
+#: VIPSWeb/local_settings.py:246
+msgid "Fruits and berries"
+msgstr "水果和浆果"
+
+#: VIPSWeb/local_settings.py:253
+msgid "Other models and services"
+msgstr "其他模型和服务"
+
 #: VIPSWeb/templates/404.html:3 VIPSWeb/templates/404.html:5
 msgid "File not found"
 msgstr "找不到文件"
@@ -181,18 +213,6 @@ msgstr ""
 msgid "Saddle gall midge"
 msgstr ""
 
-#~ msgid "Cereals and oilseeds"
-#~ msgstr "谷物和油籽"
-
-#~ msgid "Potato and vegetables"
-#~ msgstr "土豆和蔬菜"
-
-#~ msgid "Fruits and berries"
-#~ msgstr "水果和浆果"
-
-#~ msgid "Other models and services"
-#~ msgstr "其他模型和服务"
-
 #~ msgid "Temporarily down for maintenance"
 #~ msgstr "暂时停机维护"
 
diff --git a/cerealblotchmodels/locale/bg/LC_MESSAGES/django.po b/cerealblotchmodels/locale/bg/LC_MESSAGES/django.po
index c3253dceffdfa3513cc44b303cce4471db417b1b..5a6767a292d271ccc0a8fb4ff005d397bd9c7898 100644
--- a/cerealblotchmodels/locale/bg/LC_MESSAGES/django.po
+++ b/cerealblotchmodels/locale/bg/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,139 +17,102 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
 #: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:25
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:34
 msgid "Barley net blotch"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:42
-msgid "Background data for the barley net blotch model"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:49
-#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
-msgid "Weather station"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:55
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:111
 msgid "Sowing date"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:60
-msgid "Crop"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:67
-msgid "Same crop as last season"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:72
-msgid "Plowed"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:78
-msgid "Observation date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:83
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:133
 msgid "&#37; Infected leaves"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:88
-msgid "Spraying date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:93
-msgid "Preparation"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:99
-msgid "Preparation dose"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:108
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:158
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:153
 msgid "Run model"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:115
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:165
 msgid "Model is running, please wait"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:126
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:176
 msgid "Scroll past chart by swiping the dotted line on the right"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:152
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:319
 msgid "Missing observation information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:161
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:328
 msgid "Missing spraying information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:194
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:358
 msgid "Temperature, daily mean"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:195
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:359
 msgid "Rain last 28 days"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:196
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:360
 msgid "Rain, daily"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:197
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:361
 msgid "Day degrees since sowing"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:198
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:265
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:362
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:429
 msgid "Threshold"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:199
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:266
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:363
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:430
 msgid "Disease"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:206
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:370
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:392
 msgid "Time"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:214
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:378
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:399
 msgid "Warning status"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:249
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:413
 msgid "No data returned"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:262
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:426
 msgid "Disease value"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:269
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:433
 msgid "Barley net blotch development"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:281
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:445
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:316
 msgid "Select weather station"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:307
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:472
 msgid "Select crop"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:335
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:500
 msgid "Select preparation"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:364
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:529
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:210
 msgid ""
 "WARNING: We suspect you are using Internet Explorer to view this site. VIPS "
@@ -191,6 +154,10 @@ msgstr ""
 msgid "Please select"
 msgstr ""
 
+#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
+msgid "Weather station"
+msgstr ""
+
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:53
 msgid "Sprayings"
 msgstr ""
diff --git a/cerealblotchmodels/locale/bs/LC_MESSAGES/django.po b/cerealblotchmodels/locale/bs/LC_MESSAGES/django.po
index a53d50ef70b28383a93d5ecc114933578ac88508..a07d0fcbd5dc71fdb0864eec91e2b9524960918c 100644
--- a/cerealblotchmodels/locale/bs/LC_MESSAGES/django.po
+++ b/cerealblotchmodels/locale/bs/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,141 +16,104 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
 #: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:25
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:34
 msgid "Barley net blotch"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:42
-msgid "Background data for the barley net blotch model"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:49
-#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
-msgid "Weather station"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:55
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:111
 msgid "Sowing date"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:60
-msgid "Crop"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:67
-msgid "Same crop as last season"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:72
-msgid "Plowed"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:78
-msgid "Observation date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:83
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:133
 msgid "&#37; Infected leaves"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:88
-msgid "Spraying date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:93
-msgid "Preparation"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:99
-msgid "Preparation dose"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:108
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:158
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:153
 msgid "Run model"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:115
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:165
 msgid "Model is running, please wait"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:126
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:176
 msgid "Scroll past chart by swiping the dotted line on the right"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:152
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:319
 msgid "Missing observation information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:161
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:328
 msgid "Missing spraying information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:194
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:358
 msgid "Temperature, daily mean"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:195
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:359
 msgid "Rain last 28 days"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:196
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:360
 msgid "Rain, daily"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:197
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:361
 msgid "Day degrees since sowing"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:198
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:265
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:362
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:429
 msgid "Threshold"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:199
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:266
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:363
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:430
 msgid "Disease"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:206
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:370
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:392
 msgid "Time"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:214
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:378
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:399
 msgid "Warning status"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:249
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:413
 msgid "No data returned"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:262
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:426
 msgid "Disease value"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:269
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:433
 msgid "Barley net blotch development"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:281
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:445
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:316
 msgid "Select weather station"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:307
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:472
 msgid "Select crop"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:335
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:500
 msgid "Select preparation"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:364
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:529
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:210
 msgid ""
 "WARNING: We suspect you are using Internet Explorer to view this site. VIPS "
@@ -192,6 +155,10 @@ msgstr ""
 msgid "Please select"
 msgstr ""
 
+#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
+msgid "Weather station"
+msgstr ""
+
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:53
 msgid "Sprayings"
 msgstr ""
diff --git a/cerealblotchmodels/locale/de/LC_MESSAGES/django.po b/cerealblotchmodels/locale/de/LC_MESSAGES/django.po
index 65f927db1505a9f9f9b5ab501c6c94f27c691bb6..5a6767a292d271ccc0a8fb4ff005d397bd9c7898 100755
--- a/cerealblotchmodels/locale/de/LC_MESSAGES/django.po
+++ b/cerealblotchmodels/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,138 +19,100 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:25
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:34
 msgid "Barley net blotch"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:42
-msgid "Background data for the barley net blotch model"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:49
-#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
-msgid "Weather station"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:55
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:111
 msgid "Sowing date"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:60
-msgid "Crop"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:67
-msgid "Same crop as last season"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:72
-msgid "Plowed"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:78
-msgid "Observation date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:83
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:133
 msgid "&#37; Infected leaves"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:88
-msgid "Spraying date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:93
-msgid "Preparation"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:99
-msgid "Preparation dose"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:108
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:158
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:153
 msgid "Run model"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:115
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:165
 msgid "Model is running, please wait"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:126
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:176
 msgid "Scroll past chart by swiping the dotted line on the right"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:152
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:319
 msgid "Missing observation information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:161
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:328
 msgid "Missing spraying information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:194
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:358
 msgid "Temperature, daily mean"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:195
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:359
 msgid "Rain last 28 days"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:196
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:360
 msgid "Rain, daily"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:197
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:361
 msgid "Day degrees since sowing"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:198
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:265
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:362
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:429
 msgid "Threshold"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:199
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:266
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:363
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:430
 msgid "Disease"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:206
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:370
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:392
 msgid "Time"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:214
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:378
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:399
 msgid "Warning status"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:249
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:413
 msgid "No data returned"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:262
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:426
 msgid "Disease value"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:269
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:433
 msgid "Barley net blotch development"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:281
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:445
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:316
 msgid "Select weather station"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:307
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:472
 msgid "Select crop"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:335
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:500
 msgid "Select preparation"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:364
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:529
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:210
 msgid ""
 "WARNING: We suspect you are using Internet Explorer to view this site. VIPS "
@@ -192,6 +154,10 @@ msgstr ""
 msgid "Please select"
 msgstr ""
 
+#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
+msgid "Weather station"
+msgstr ""
+
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:53
 msgid "Sprayings"
 msgstr ""
diff --git a/cerealblotchmodels/locale/fi/LC_MESSAGES/django.po b/cerealblotchmodels/locale/fi/LC_MESSAGES/django.po
index c3253dceffdfa3513cc44b303cce4471db417b1b..5a6767a292d271ccc0a8fb4ff005d397bd9c7898 100644
--- a/cerealblotchmodels/locale/fi/LC_MESSAGES/django.po
+++ b/cerealblotchmodels/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,139 +17,102 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
 #: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:25
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:34
 msgid "Barley net blotch"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:42
-msgid "Background data for the barley net blotch model"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:49
-#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
-msgid "Weather station"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:55
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:111
 msgid "Sowing date"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:60
-msgid "Crop"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:67
-msgid "Same crop as last season"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:72
-msgid "Plowed"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:78
-msgid "Observation date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:83
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:133
 msgid "&#37; Infected leaves"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:88
-msgid "Spraying date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:93
-msgid "Preparation"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:99
-msgid "Preparation dose"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:108
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:158
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:153
 msgid "Run model"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:115
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:165
 msgid "Model is running, please wait"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:126
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:176
 msgid "Scroll past chart by swiping the dotted line on the right"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:152
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:319
 msgid "Missing observation information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:161
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:328
 msgid "Missing spraying information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:194
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:358
 msgid "Temperature, daily mean"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:195
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:359
 msgid "Rain last 28 days"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:196
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:360
 msgid "Rain, daily"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:197
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:361
 msgid "Day degrees since sowing"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:198
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:265
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:362
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:429
 msgid "Threshold"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:199
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:266
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:363
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:430
 msgid "Disease"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:206
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:370
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:392
 msgid "Time"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:214
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:378
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:399
 msgid "Warning status"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:249
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:413
 msgid "No data returned"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:262
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:426
 msgid "Disease value"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:269
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:433
 msgid "Barley net blotch development"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:281
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:445
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:316
 msgid "Select weather station"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:307
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:472
 msgid "Select crop"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:335
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:500
 msgid "Select preparation"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:364
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:529
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:210
 msgid ""
 "WARNING: We suspect you are using Internet Explorer to view this site. VIPS "
@@ -191,6 +154,10 @@ msgstr ""
 msgid "Please select"
 msgstr ""
 
+#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
+msgid "Weather station"
+msgstr ""
+
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:53
 msgid "Sprayings"
 msgstr ""
diff --git a/cerealblotchmodels/locale/nb/LC_MESSAGES/django.mo b/cerealblotchmodels/locale/nb/LC_MESSAGES/django.mo
index f7de82ce09ce0d8826adf8190a0f8f6ee9b76bd4..7203e90a7a0c5e7602ce5279ad885e3f3845d90b 100755
Binary files a/cerealblotchmodels/locale/nb/LC_MESSAGES/django.mo and b/cerealblotchmodels/locale/nb/LC_MESSAGES/django.mo differ
diff --git a/cerealblotchmodels/locale/nb/LC_MESSAGES/django.po b/cerealblotchmodels/locale/nb/LC_MESSAGES/django.po
index f7572e76e38c61023b46d142bf61a4c0579408bf..1fe093b430a5a2545d9939b395c7afb4788033ab 100644
--- a/cerealblotchmodels/locale/nb/LC_MESSAGES/django.po
+++ b/cerealblotchmodels/locale/nb/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: 2024-04-04 12:59+0200\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -20,138 +20,100 @@ msgstr ""
 "X-Generator: Poedit 3.4.2\n"
 
 #: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:25
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:34
 msgid "Barley net blotch"
 msgstr "Byggbrunflekk"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:42
-msgid "Background data for the barley net blotch model"
-msgstr "Bakgrunnsdata for byggbrunflekkmodellen"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:49
-#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
-msgid "Weather station"
-msgstr "Målestasjon"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:55
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:111
 msgid "Sowing date"
 msgstr "Sådato"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:60
-msgid "Crop"
-msgstr "Kultur"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:67
-msgid "Same crop as last season"
-msgstr "Samme kultur som forrige sesong"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:72
-msgid "Plowed"
-msgstr "Plølyd"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:78
-msgid "Observation date"
-msgstr "Observasjonsdato"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:83
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:133
 msgid "&#37; Infected leaves"
 msgstr "&#37; Infiserte blad"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:88
-msgid "Spraying date"
-msgstr "Sprøytedato"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:93
-msgid "Preparation"
-msgstr "Preparat"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:99
-msgid "Preparation dose"
-msgstr "Preparatdose"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:108
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:158
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:153
 msgid "Run model"
 msgstr "Kjør modell"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:115
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:165
 msgid "Model is running, please wait"
 msgstr "Modellen kjører, vennligst vent"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:126
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:176
 msgid "Scroll past chart by swiping the dotted line on the right"
 msgstr "Scroll forbi grafen ved å sveipe den prikkede linjen til høyre"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:152
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:319
 msgid "Missing observation information"
 msgstr "Manglende informasjon om feltobservasjoner"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:161
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:328
 msgid "Missing spraying information"
 msgstr "Manglende sprøytedata"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:194
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:358
 msgid "Temperature, daily mean"
 msgstr "Temperatur, daglig gjennomsnitt"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:195
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:359
 msgid "Rain last 28 days"
 msgstr "Regn siste 28 dager"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:196
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:360
 msgid "Rain, daily"
 msgstr "Regn, daglig sum"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:197
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:361
 msgid "Day degrees since sowing"
 msgstr "Døgngrader siden såing"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:198
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:265
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:362
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:429
 msgid "Threshold"
 msgstr "Terskel"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:199
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:266
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:363
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:430
 msgid "Disease"
 msgstr "Sykdom"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:206
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:370
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:392
 msgid "Time"
 msgstr "Tid"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:214
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:378
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:399
 msgid "Warning status"
 msgstr "Varselstatus"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:249
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:413
 msgid "No data returned"
 msgstr "Ingen data returnert"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:262
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:426
 msgid "Disease value"
 msgstr "Sykdomsverdi"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:269
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:433
 msgid "Barley net blotch development"
 msgstr "Utvikling av byggbrunflekk"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:281
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:445
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:316
 msgid "Select weather station"
 msgstr "Velg målestasjon"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:307
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:472
 msgid "Select crop"
 msgstr "Velg kultur"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:335
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:500
 msgid "Select preparation"
 msgstr "Velg preparat"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:364
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:529
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:210
 msgid ""
 "WARNING: We suspect you are using Internet Explorer to view this site. VIPS "
@@ -197,6 +159,10 @@ msgstr "Land"
 msgid "Please select"
 msgstr "Vennligst velg"
 
+#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
+msgid "Weather station"
+msgstr "Målestasjon"
+
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:53
 msgid "Sprayings"
 msgstr "Sprøytinger"
@@ -321,3 +287,27 @@ msgstr "Terskel fuktig periode"
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:446
 msgid "Spraying protection period"
 msgstr "Beskyttet periode ved sprøyting"
+
+#~ msgid "Background data for the barley net blotch model"
+#~ msgstr "Bakgrunnsdata for byggbrunflekkmodellen"
+
+#~ msgid "Crop"
+#~ msgstr "Kultur"
+
+#~ msgid "Same crop as last season"
+#~ msgstr "Samme kultur som forrige sesong"
+
+#~ msgid "Plowed"
+#~ msgstr "Plølyd"
+
+#~ msgid "Observation date"
+#~ msgstr "Observasjonsdato"
+
+#~ msgid "Spraying date"
+#~ msgstr "Sprøytedato"
+
+#~ msgid "Preparation"
+#~ msgstr "Preparat"
+
+#~ msgid "Preparation dose"
+#~ msgstr "Preparatdose"
diff --git a/cerealblotchmodels/locale/vi/LC_MESSAGES/django.po b/cerealblotchmodels/locale/vi/LC_MESSAGES/django.po
index 8ef4bb737e0c32589ac44c30c7ee6c524591d7f8..9e1b0c745174f36d85d5847397546e00df4009ad 100644
--- a/cerealblotchmodels/locale/vi/LC_MESSAGES/django.po
+++ b/cerealblotchmodels/locale/vi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,139 +17,102 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+
 #: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:25
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:34
 msgid "Barley net blotch"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:42
-msgid "Background data for the barley net blotch model"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:49
-#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
-msgid "Weather station"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:55
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:111
 msgid "Sowing date"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:60
-msgid "Crop"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:67
-msgid "Same crop as last season"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:72
-msgid "Plowed"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:78
-msgid "Observation date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:83
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:133
 msgid "&#37; Infected leaves"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:88
-msgid "Spraying date"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:93
-msgid "Preparation"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:99
-msgid "Preparation dose"
-msgstr ""
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:108
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:158
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:153
 msgid "Run model"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:115
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:165
 msgid "Model is running, please wait"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:126
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:176
 msgid "Scroll past chart by swiping the dotted line on the right"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:152
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:319
 msgid "Missing observation information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:161
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:328
 msgid "Missing spraying information"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:194
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:358
 msgid "Temperature, daily mean"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:195
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:359
 msgid "Rain last 28 days"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:196
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:360
 msgid "Rain, daily"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:197
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:361
 msgid "Day degrees since sowing"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:198
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:265
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:362
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:429
 msgid "Threshold"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:199
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:266
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:363
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:430
 msgid "Disease"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:206
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:370
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:392
 msgid "Time"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:214
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:378
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:399
 msgid "Warning status"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:249
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:413
 msgid "No data returned"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:262
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:426
 msgid "Disease value"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:269
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:433
 msgid "Barley net blotch development"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:281
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:445
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:316
 msgid "Select weather station"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:307
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:472
 msgid "Select crop"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:335
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:500
 msgid "Select preparation"
 msgstr ""
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:364
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:529
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:210
 msgid ""
 "WARNING: We suspect you are using Internet Explorer to view this site. VIPS "
@@ -191,6 +154,10 @@ msgstr ""
 msgid "Please select"
 msgstr ""
 
+#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
+msgid "Weather station"
+msgstr ""
+
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:53
 msgid "Sprayings"
 msgstr ""
diff --git a/cerealblotchmodels/locale/zh_Hans/LC_MESSAGES/django.po b/cerealblotchmodels/locale/zh_Hans/LC_MESSAGES/django.po
index 0516bdc52d5c911a343cddd31cdd6a1bb7a7d8e9..23557b70337bbd2317513c123b58af3a60c19356 100755
--- a/cerealblotchmodels/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/cerealblotchmodels/locale/zh_Hans/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: 2016-10-07 11:05+0200\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -19,138 +19,100 @@ msgstr ""
 "X-Generator: Poedit 1.8.7\n"
 
 #: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:25
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:34
 msgid "Barley net blotch"
 msgstr "大麦网斑病"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:42
-msgid "Background data for the barley net blotch model"
-msgstr "大麦网斑病模型的背景数据"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:49
-#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
-msgid "Weather station"
-msgstr "气象站"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:55
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:111
 msgid "Sowing date"
 msgstr "播种日期"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:60
-msgid "Crop"
-msgstr "作物"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:67
-msgid "Same crop as last season"
-msgstr "与上季同样的作物"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:72
-msgid "Plowed"
-msgstr "犁过的"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:78
-msgid "Observation date"
-msgstr "观测日期"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:83
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:133
 msgid "&#37; Infected leaves"
 msgstr "&#37; 感染水平"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:88
-msgid "Spraying date"
-msgstr "喷药日期"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:93
-msgid "Preparation"
-msgstr "准备"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:99
-msgid "Preparation dose"
-msgstr "准备剂量"
-
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:108
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:158
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:153
 msgid "Run model"
 msgstr "运行模型"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:115
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:165
 msgid "Model is running, please wait"
 msgstr "模型在运行,请等候"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:126
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:176
 msgid "Scroll past chart by swiping the dotted line on the right"
 msgstr "点击右边点状线看上一幅图"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:152
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:319
 msgid "Missing observation information"
 msgstr "遗失的观测信息"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:161
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:328
 msgid "Missing spraying information"
 msgstr "遗失的喷药信息"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:194
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:358
 msgid "Temperature, daily mean"
 msgstr "日均温"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:195
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:359
 msgid "Rain last 28 days"
 msgstr "过去28天降雨"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:196
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:360
 msgid "Rain, daily"
 msgstr "日降雨"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:197
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:361
 msgid "Day degrees since sowing"
 msgstr "从撒种开始日温度"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:198
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:265
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:362
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:429
 msgid "Threshold"
 msgstr "阈值"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:199
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:266
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:363
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:430
 msgid "Disease"
 msgstr "疾病"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:206
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:370
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:392
 msgid "Time"
 msgstr "时间"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:214
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:378
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:399
 msgid "Warning status"
 msgstr "预警信息"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:249
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:413
 msgid "No data returned"
 msgstr "无数据返回"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:262
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:426
 msgid "Disease value"
 msgstr "疾病值"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:269
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:433
 msgid "Barley net blotch development"
 msgstr "大麦网斑病发展"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:281
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:445
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:316
 msgid "Select weather station"
 msgstr "选择气象站"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:307
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:472
 msgid "Select crop"
 msgstr "选择作物"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:335
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:500
 msgid "Select preparation"
 msgstr "选择准备"
 
-#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:364
+#: cerealblotchmodels/templates/cerealblotchmodels/barleynetblotchform.html:529
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:210
 msgid ""
 "WARNING: We suspect you are using Internet Explorer to view this site. VIPS "
@@ -192,6 +154,10 @@ msgstr ""
 msgid "Please select"
 msgstr ""
 
+#: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:46
+msgid "Weather station"
+msgstr "气象站"
+
 #: cerealblotchmodels/templates/cerealblotchmodels/septoriahumiditymodelform.html:53
 #, fuzzy
 #| msgid "Spraying date"
@@ -329,6 +295,30 @@ msgstr ""
 msgid "Spraying protection period"
 msgstr ""
 
+#~ msgid "Background data for the barley net blotch model"
+#~ msgstr "大麦网斑病模型的背景数据"
+
+#~ msgid "Crop"
+#~ msgstr "作物"
+
+#~ msgid "Same crop as last season"
+#~ msgstr "与上季同样的作物"
+
+#~ msgid "Plowed"
+#~ msgstr "犁过的"
+
+#~ msgid "Observation date"
+#~ msgstr "观测日期"
+
+#~ msgid "Spraying date"
+#~ msgstr "喷药日期"
+
+#~ msgid "Preparation"
+#~ msgstr "准备"
+
+#~ msgid "Preparation dose"
+#~ msgstr "准备剂量"
+
 #, fuzzy
 #~| msgid "Background data for the barley net blotch model"
 #~ msgid "Background data for the wheat leaf blotch model"
diff --git a/cydiapomonella/locale/bg/LC_MESSAGES/django.po b/cydiapomonella/locale/bg/LC_MESSAGES/django.po
index 079deba3686c705dd73db27dfb633e819d64e5e6..75cad8d1d5e6e0335468dc5ae4cb88f93ef8a542 100644
--- a/cydiapomonella/locale/bg/LC_MESSAGES/django.po
+++ b/cydiapomonella/locale/bg/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,6 +19,7 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:29
+#: cydiapomonella/templates/cydiapomonella/index_new.html:22
 msgid "Cydia pomonella"
 msgstr ""
 
@@ -28,14 +29,17 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:718
+#: cydiapomonella/templates/cydiapomonella/index_new.html:42
 msgid "Calculate the risk of attack by the coddling moth"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:727
+#: cydiapomonella/templates/cydiapomonella/index_new.html:51
 msgid "No weather data available from the selected weather station"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:733
+#: cydiapomonella/templates/cydiapomonella/index_new.html:57
 msgid "Select weather station"
 msgstr ""
 
@@ -43,10 +47,15 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:768
 #: cydiapomonella/templates/cydiapomonella/index.html:771
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:63
+#: cydiapomonella/templates/cydiapomonella/index_new.html:66
+#: cydiapomonella/templates/cydiapomonella/index_new.html:69
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "days"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:782
+#: cydiapomonella/templates/cydiapomonella/index_new.html:81
 msgid "Date"
 msgstr ""
 
@@ -55,18 +64,26 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:785
 #: cydiapomonella/templates/cydiapomonella/index.html:786
 #: cydiapomonella/templates/cydiapomonella/index.html:787
+#: cydiapomonella/templates/cydiapomonella/index_new.html:82
+#: cydiapomonella/templates/cydiapomonella/index_new.html:83
+#: cydiapomonella/templates/cydiapomonella/index_new.html:84
+#: cydiapomonella/templates/cydiapomonella/index_new.html:85
+#: cydiapomonella/templates/cydiapomonella/index_new.html:86
 msgid "Temp at"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:788
+#: cydiapomonella/templates/cydiapomonella/index_new.html:87
 msgid "Daily rainfall"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:803
+#: cydiapomonella/templates/cydiapomonella/index_new.html:102
 msgid "Heat sum"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:807
+#: cydiapomonella/templates/cydiapomonella/index_new.html:105
 msgid "Calculate heat sum from date"
 msgstr ""
 
@@ -76,17 +93,29 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "weather station for the period starting with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "and ending with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "is"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "day degrees"
 msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "calculated for "
+msgstr ""
diff --git a/cydiapomonella/locale/bs/LC_MESSAGES/django.po b/cydiapomonella/locale/bs/LC_MESSAGES/django.po
index 562f3be3ddf15214422a4027c412f5c7794912c3..83e56be8674b227a45008ed4f427aa79c0022813 100644
--- a/cydiapomonella/locale/bs/LC_MESSAGES/django.po
+++ b/cydiapomonella/locale/bs/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,6 +20,7 @@ msgstr ""
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:29
+#: cydiapomonella/templates/cydiapomonella/index_new.html:22
 msgid "Cydia pomonella"
 msgstr ""
 
@@ -29,14 +30,17 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:718
+#: cydiapomonella/templates/cydiapomonella/index_new.html:42
 msgid "Calculate the risk of attack by the coddling moth"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:727
+#: cydiapomonella/templates/cydiapomonella/index_new.html:51
 msgid "No weather data available from the selected weather station"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:733
+#: cydiapomonella/templates/cydiapomonella/index_new.html:57
 msgid "Select weather station"
 msgstr ""
 
@@ -44,10 +48,15 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:768
 #: cydiapomonella/templates/cydiapomonella/index.html:771
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:63
+#: cydiapomonella/templates/cydiapomonella/index_new.html:66
+#: cydiapomonella/templates/cydiapomonella/index_new.html:69
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "days"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:782
+#: cydiapomonella/templates/cydiapomonella/index_new.html:81
 msgid "Date"
 msgstr ""
 
@@ -56,18 +65,26 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:785
 #: cydiapomonella/templates/cydiapomonella/index.html:786
 #: cydiapomonella/templates/cydiapomonella/index.html:787
+#: cydiapomonella/templates/cydiapomonella/index_new.html:82
+#: cydiapomonella/templates/cydiapomonella/index_new.html:83
+#: cydiapomonella/templates/cydiapomonella/index_new.html:84
+#: cydiapomonella/templates/cydiapomonella/index_new.html:85
+#: cydiapomonella/templates/cydiapomonella/index_new.html:86
 msgid "Temp at"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:788
+#: cydiapomonella/templates/cydiapomonella/index_new.html:87
 msgid "Daily rainfall"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:803
+#: cydiapomonella/templates/cydiapomonella/index_new.html:102
 msgid "Heat sum"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:807
+#: cydiapomonella/templates/cydiapomonella/index_new.html:105
 msgid "Calculate heat sum from date"
 msgstr ""
 
@@ -77,17 +94,29 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "weather station for the period starting with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "and ending with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "is"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "day degrees"
 msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "calculated for "
+msgstr ""
diff --git a/cydiapomonella/locale/de/LC_MESSAGES/django.po b/cydiapomonella/locale/de/LC_MESSAGES/django.po
index 079deba3686c705dd73db27dfb633e819d64e5e6..75cad8d1d5e6e0335468dc5ae4cb88f93ef8a542 100644
--- a/cydiapomonella/locale/de/LC_MESSAGES/django.po
+++ b/cydiapomonella/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,6 +19,7 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:29
+#: cydiapomonella/templates/cydiapomonella/index_new.html:22
 msgid "Cydia pomonella"
 msgstr ""
 
@@ -28,14 +29,17 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:718
+#: cydiapomonella/templates/cydiapomonella/index_new.html:42
 msgid "Calculate the risk of attack by the coddling moth"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:727
+#: cydiapomonella/templates/cydiapomonella/index_new.html:51
 msgid "No weather data available from the selected weather station"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:733
+#: cydiapomonella/templates/cydiapomonella/index_new.html:57
 msgid "Select weather station"
 msgstr ""
 
@@ -43,10 +47,15 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:768
 #: cydiapomonella/templates/cydiapomonella/index.html:771
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:63
+#: cydiapomonella/templates/cydiapomonella/index_new.html:66
+#: cydiapomonella/templates/cydiapomonella/index_new.html:69
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "days"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:782
+#: cydiapomonella/templates/cydiapomonella/index_new.html:81
 msgid "Date"
 msgstr ""
 
@@ -55,18 +64,26 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:785
 #: cydiapomonella/templates/cydiapomonella/index.html:786
 #: cydiapomonella/templates/cydiapomonella/index.html:787
+#: cydiapomonella/templates/cydiapomonella/index_new.html:82
+#: cydiapomonella/templates/cydiapomonella/index_new.html:83
+#: cydiapomonella/templates/cydiapomonella/index_new.html:84
+#: cydiapomonella/templates/cydiapomonella/index_new.html:85
+#: cydiapomonella/templates/cydiapomonella/index_new.html:86
 msgid "Temp at"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:788
+#: cydiapomonella/templates/cydiapomonella/index_new.html:87
 msgid "Daily rainfall"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:803
+#: cydiapomonella/templates/cydiapomonella/index_new.html:102
 msgid "Heat sum"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:807
+#: cydiapomonella/templates/cydiapomonella/index_new.html:105
 msgid "Calculate heat sum from date"
 msgstr ""
 
@@ -76,17 +93,29 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "weather station for the period starting with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "and ending with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "is"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "day degrees"
 msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "calculated for "
+msgstr ""
diff --git a/cydiapomonella/locale/fi/LC_MESSAGES/django.po b/cydiapomonella/locale/fi/LC_MESSAGES/django.po
index 079deba3686c705dd73db27dfb633e819d64e5e6..75cad8d1d5e6e0335468dc5ae4cb88f93ef8a542 100644
--- a/cydiapomonella/locale/fi/LC_MESSAGES/django.po
+++ b/cydiapomonella/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,6 +19,7 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:29
+#: cydiapomonella/templates/cydiapomonella/index_new.html:22
 msgid "Cydia pomonella"
 msgstr ""
 
@@ -28,14 +29,17 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:718
+#: cydiapomonella/templates/cydiapomonella/index_new.html:42
 msgid "Calculate the risk of attack by the coddling moth"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:727
+#: cydiapomonella/templates/cydiapomonella/index_new.html:51
 msgid "No weather data available from the selected weather station"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:733
+#: cydiapomonella/templates/cydiapomonella/index_new.html:57
 msgid "Select weather station"
 msgstr ""
 
@@ -43,10 +47,15 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:768
 #: cydiapomonella/templates/cydiapomonella/index.html:771
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:63
+#: cydiapomonella/templates/cydiapomonella/index_new.html:66
+#: cydiapomonella/templates/cydiapomonella/index_new.html:69
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "days"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:782
+#: cydiapomonella/templates/cydiapomonella/index_new.html:81
 msgid "Date"
 msgstr ""
 
@@ -55,18 +64,26 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:785
 #: cydiapomonella/templates/cydiapomonella/index.html:786
 #: cydiapomonella/templates/cydiapomonella/index.html:787
+#: cydiapomonella/templates/cydiapomonella/index_new.html:82
+#: cydiapomonella/templates/cydiapomonella/index_new.html:83
+#: cydiapomonella/templates/cydiapomonella/index_new.html:84
+#: cydiapomonella/templates/cydiapomonella/index_new.html:85
+#: cydiapomonella/templates/cydiapomonella/index_new.html:86
 msgid "Temp at"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:788
+#: cydiapomonella/templates/cydiapomonella/index_new.html:87
 msgid "Daily rainfall"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:803
+#: cydiapomonella/templates/cydiapomonella/index_new.html:102
 msgid "Heat sum"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:807
+#: cydiapomonella/templates/cydiapomonella/index_new.html:105
 msgid "Calculate heat sum from date"
 msgstr ""
 
@@ -76,17 +93,29 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "weather station for the period starting with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "and ending with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "is"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "day degrees"
 msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "calculated for "
+msgstr ""
diff --git a/cydiapomonella/locale/nb/LC_MESSAGES/django.mo b/cydiapomonella/locale/nb/LC_MESSAGES/django.mo
index e3737a06e70691511f59d9b593a2bca47a1a3e3f..d5e6a992650486d7696f042c6857269c8f4a1359 100644
Binary files a/cydiapomonella/locale/nb/LC_MESSAGES/django.mo and b/cydiapomonella/locale/nb/LC_MESSAGES/django.mo differ
diff --git a/cydiapomonella/locale/nb/LC_MESSAGES/django.po b/cydiapomonella/locale/nb/LC_MESSAGES/django.po
index 56356a7b919bb08cf2cdf02586682d4d11bc1f0e..c26b9dc19bcc65c846eb2dcdf346abd09a3695f8 100644
--- a/cydiapomonella/locale/nb/LC_MESSAGES/django.po
+++ b/cydiapomonella/locale/nb/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
-"PO-Revision-Date: 2021-06-09 08:49+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
+"PO-Revision-Date: 2024-10-30 08:46+0100\n"
 "Last-Translator: \n"
 "Language-Team: \n"
 "Language: nb\n"
@@ -16,27 +16,29 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.3\n"
+"X-Generator: Poedit 3.4.2\n"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:29
+#: cydiapomonella/templates/cydiapomonella/index_new.html:22
 msgid "Cydia pomonella"
 msgstr "Eplevikler"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:713
-msgid ""
-"Loading weather data !! If it takes forever, please contact the VIPS team."
-msgstr ""
-"Laster værdata. Hvis det tar veldig lang tid, vennligst kontakt VIPS-teamet."
+msgid "Loading weather data !! If it takes forever, please contact the VIPS team."
+msgstr "Laster værdata. Hvis det tar veldig lang tid, vennligst kontakt VIPS-teamet."
 
 #: cydiapomonella/templates/cydiapomonella/index.html:718
+#: cydiapomonella/templates/cydiapomonella/index_new.html:42
 msgid "Calculate the risk of attack by the coddling moth"
 msgstr "Beregn fare for angrep av eplevikler"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:727
+#: cydiapomonella/templates/cydiapomonella/index_new.html:51
 msgid "No weather data available from the selected weather station"
 msgstr "Ingen værdata er tilgjengelig fra den valgte målestasjonen"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:733
+#: cydiapomonella/templates/cydiapomonella/index_new.html:57
 msgid "Select weather station"
 msgstr "Velg målestasjon"
 
@@ -44,10 +46,15 @@ msgstr "Velg målestasjon"
 #: cydiapomonella/templates/cydiapomonella/index.html:768
 #: cydiapomonella/templates/cydiapomonella/index.html:771
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:63
+#: cydiapomonella/templates/cydiapomonella/index_new.html:66
+#: cydiapomonella/templates/cydiapomonella/index_new.html:69
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "days"
 msgstr "dager"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:782
+#: cydiapomonella/templates/cydiapomonella/index_new.html:81
 msgid "Date"
 msgstr "Dato"
 
@@ -56,38 +63,57 @@ msgstr "Dato"
 #: cydiapomonella/templates/cydiapomonella/index.html:785
 #: cydiapomonella/templates/cydiapomonella/index.html:786
 #: cydiapomonella/templates/cydiapomonella/index.html:787
+#: cydiapomonella/templates/cydiapomonella/index_new.html:82
+#: cydiapomonella/templates/cydiapomonella/index_new.html:83
+#: cydiapomonella/templates/cydiapomonella/index_new.html:84
+#: cydiapomonella/templates/cydiapomonella/index_new.html:85
+#: cydiapomonella/templates/cydiapomonella/index_new.html:86
 msgid "Temp at"
 msgstr "Temp kl"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:788
+#: cydiapomonella/templates/cydiapomonella/index_new.html:87
 msgid "Daily rainfall"
 msgstr "Døgnnedbør"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:803
+#: cydiapomonella/templates/cydiapomonella/index_new.html:102
 msgid "Heat sum"
 msgstr "Varmesum"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:807
+#: cydiapomonella/templates/cydiapomonella/index_new.html:105
 msgid "Calculate heat sum from date"
 msgstr "Beregn varmesum fra dato"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
-msgid ""
-"Heat sum, with a base temperature of 10 degrees Celcius, calculated for "
+msgid "Heat sum, with a base temperature of 10 degrees Celcius, calculated for "
 msgstr "Varmesum, med basistemperatur 10, beregnet for "
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "weather station for the period starting with"
 msgstr "målestasjon for perioden fra og med"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "and ending with"
 msgstr "til og med"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "is"
 msgstr "er"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "day degrees"
 msgstr "graddager"
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "Heat sum, with a base temperature of"
+msgstr "Varmesum, med basistemperatur"
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "calculated for "
+msgstr "beregnet for "
diff --git a/cydiapomonella/locale/vi/LC_MESSAGES/django.po b/cydiapomonella/locale/vi/LC_MESSAGES/django.po
index 5c528fba6d4fcb42f35cf45647be116c4ddc770a..353e88c31815094ca1a286d422be8347226f4ed7 100644
--- a/cydiapomonella/locale/vi/LC_MESSAGES/django.po
+++ b/cydiapomonella/locale/vi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,6 +19,7 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:29
+#: cydiapomonella/templates/cydiapomonella/index_new.html:22
 msgid "Cydia pomonella"
 msgstr ""
 
@@ -28,14 +29,17 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:718
+#: cydiapomonella/templates/cydiapomonella/index_new.html:42
 msgid "Calculate the risk of attack by the coddling moth"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:727
+#: cydiapomonella/templates/cydiapomonella/index_new.html:51
 msgid "No weather data available from the selected weather station"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:733
+#: cydiapomonella/templates/cydiapomonella/index_new.html:57
 msgid "Select weather station"
 msgstr ""
 
@@ -43,10 +47,15 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:768
 #: cydiapomonella/templates/cydiapomonella/index.html:771
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:63
+#: cydiapomonella/templates/cydiapomonella/index_new.html:66
+#: cydiapomonella/templates/cydiapomonella/index_new.html:69
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "days"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:782
+#: cydiapomonella/templates/cydiapomonella/index_new.html:81
 msgid "Date"
 msgstr ""
 
@@ -55,18 +64,26 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:785
 #: cydiapomonella/templates/cydiapomonella/index.html:786
 #: cydiapomonella/templates/cydiapomonella/index.html:787
+#: cydiapomonella/templates/cydiapomonella/index_new.html:82
+#: cydiapomonella/templates/cydiapomonella/index_new.html:83
+#: cydiapomonella/templates/cydiapomonella/index_new.html:84
+#: cydiapomonella/templates/cydiapomonella/index_new.html:85
+#: cydiapomonella/templates/cydiapomonella/index_new.html:86
 msgid "Temp at"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:788
+#: cydiapomonella/templates/cydiapomonella/index_new.html:87
 msgid "Daily rainfall"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:803
+#: cydiapomonella/templates/cydiapomonella/index_new.html:102
 msgid "Heat sum"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:807
+#: cydiapomonella/templates/cydiapomonella/index_new.html:105
 msgid "Calculate heat sum from date"
 msgstr ""
 
@@ -76,17 +93,29 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "weather station for the period starting with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "and ending with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "is"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "day degrees"
 msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "calculated for "
+msgstr ""
diff --git a/cydiapomonella/locale/zh_Hans/LC_MESSAGES/django.po b/cydiapomonella/locale/zh_Hans/LC_MESSAGES/django.po
index 5c528fba6d4fcb42f35cf45647be116c4ddc770a..353e88c31815094ca1a286d422be8347226f4ed7 100644
--- a/cydiapomonella/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/cydiapomonella/locale/zh_Hans/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:16+0100\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,6 +19,7 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 
 #: cydiapomonella/templates/cydiapomonella/index.html:29
+#: cydiapomonella/templates/cydiapomonella/index_new.html:22
 msgid "Cydia pomonella"
 msgstr ""
 
@@ -28,14 +29,17 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:718
+#: cydiapomonella/templates/cydiapomonella/index_new.html:42
 msgid "Calculate the risk of attack by the coddling moth"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:727
+#: cydiapomonella/templates/cydiapomonella/index_new.html:51
 msgid "No weather data available from the selected weather station"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:733
+#: cydiapomonella/templates/cydiapomonella/index_new.html:57
 msgid "Select weather station"
 msgstr ""
 
@@ -43,10 +47,15 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:768
 #: cydiapomonella/templates/cydiapomonella/index.html:771
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:63
+#: cydiapomonella/templates/cydiapomonella/index_new.html:66
+#: cydiapomonella/templates/cydiapomonella/index_new.html:69
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "days"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:782
+#: cydiapomonella/templates/cydiapomonella/index_new.html:81
 msgid "Date"
 msgstr ""
 
@@ -55,18 +64,26 @@ msgstr ""
 #: cydiapomonella/templates/cydiapomonella/index.html:785
 #: cydiapomonella/templates/cydiapomonella/index.html:786
 #: cydiapomonella/templates/cydiapomonella/index.html:787
+#: cydiapomonella/templates/cydiapomonella/index_new.html:82
+#: cydiapomonella/templates/cydiapomonella/index_new.html:83
+#: cydiapomonella/templates/cydiapomonella/index_new.html:84
+#: cydiapomonella/templates/cydiapomonella/index_new.html:85
+#: cydiapomonella/templates/cydiapomonella/index_new.html:86
 msgid "Temp at"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:788
+#: cydiapomonella/templates/cydiapomonella/index_new.html:87
 msgid "Daily rainfall"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:803
+#: cydiapomonella/templates/cydiapomonella/index_new.html:102
 msgid "Heat sum"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:807
+#: cydiapomonella/templates/cydiapomonella/index_new.html:105
 msgid "Calculate heat sum from date"
 msgstr ""
 
@@ -76,17 +93,29 @@ msgid ""
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "weather station for the period starting with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
 msgid "and ending with"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "is"
 msgstr ""
 
 #: cydiapomonella/templates/cydiapomonella/index.html:815
+#: cydiapomonella/templates/cydiapomonella/index_new.html:114
 msgid "day degrees"
 msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/templates/cydiapomonella/index_new.html:113
+msgid "calculated for "
+msgstr ""
diff --git a/cydiapomonella/static/js/cydiapomonella.js b/cydiapomonella/static/js/cydiapomonella.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d34962f1d3ec8bcabf251ff73e0cbc3b9bd4dc0
--- /dev/null
+++ b/cydiapomonella/static/js/cydiapomonella.js
@@ -0,0 +1,247 @@
+const weatherStationDataURL = "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback";
+const gridDataURL = "https://weather.vips.nibio.no/rest/grid/openmeteo/"; // TODO: Revider APIet
+const TIMEZONE = "Europe/Oslo";
+const DATE_FORMAT = "YYYY-MM-DD";
+const HEATSUM_BASE_TEMP = 10.0;
+
+const appleWeatherStations = [
+    { "id": 11, "name": "Apelsvoll" },
+    { "id": 12, "name": "Balestrand" },
+    { "id": 13, "name": "Bø" },
+    { "id": 86, "name": "Darbu" },
+    { "id": 19, "name": "Gjerpen" },
+    { "id": 21, "name": "Gvarv" },
+    { "id": 22, "name": "Hjelmeland" },
+    { "id": 25, "name": "Hønefoss" },
+    { "id": 27, "name": "Kise" },
+    { "id": 29, "name": "Landvik" },
+    { "id": 30, "name": "Lier" },
+    { "id": 65, "name": "Ljøsne" },
+    { "id": 32, "name": "Lyngdal" },
+    { "id": 35, "name": "Njøs" },
+    { "id": 41, "name": "Rygge" },
+    { "id": 42, "name": "Sande" },
+    { "id": 131, "name": "Sandefjord" },
+    { "id": 64, "name": "Slinde" },
+    { "id": 47, "name": "Svelvik" },
+    { "id": 91, "name": "Søve" },
+    { "id": 61, "name": "Åsbakken" }
+];
+
+function renderWeatherstations() {
+    let wsSelect = document.getElementById("weatherStationId");
+    appleWeatherStations.forEach((ws) => {
+        wsSelect.options[wsSelect.options.length] = new Option(ws["name"], ws["id"]);
+    });
+}
+
+async function runModel() {
+    let wsSelect = document.getElementById("weatherStationId");
+    let selectedWeatherStationId = wsSelect.options[wsSelect.selectedIndex].value;
+    if(selectedWeatherStationId == "-1")
+    {
+        return;
+    }
+    let startDateHourly = getStartDateHourly();
+    let endDateHourly = getEndDateHourly();
+    try
+    {
+        // Get the hourly data for the past X days
+        const hourlyDataResponse = await fetch(
+            weatherStationDataURL + "?weatherStationId=" + selectedWeatherStationId 
+            + "&elementMeasurementTypes[]=RR&elementMeasurementTypes[]=TM"
+            + "&timeZone="  + TIMEZONE 
+            + "&startDate=" + startDateHourly.format(DATE_FORMAT) + "&startTime=0" 
+            + "&endDate=" + endDateHourly.format(DATE_FORMAT) + "&endTime=12"  
+            + "&logIntervalId=1"
+        );
+        if(! hourlyDataResponse.ok){
+            throw new Error("Response status: " + hourlyDataResponse.status);
+        }
+
+        const hourlyData = await hourlyDataResponse.json();
+
+        // Get the daily RR data for the past X days
+        const dailyData = getDailyRRData(hourlyData);
+
+        renderTable(hourlyData, dailyData);
+
+        runHeatSumCalculations();
+        
+
+        //calculateHeatSum()
+    }
+    catch(error)
+    {
+        console.error(error.message);
+    }
+}
+
+async function runHeatSumCalculations()
+{
+    document.getElementById("heatSumContainer").style.display="block";
+    let wsSelect = document.getElementById("weatherStationId");
+    let selectedWeatherStationId = wsSelect.options[wsSelect.selectedIndex].value;
+    if(selectedWeatherStationId == "-1")
+    {
+        return;
+    }
+    // Get daily temperature data for the heat sum
+    const heatSumStartDate = setToTZMidnight(moment(document.getElementById("heatSumStartDate").value));
+    const heatSumEndDate = setToTZMidnight(moment().tz(TIMEZONE).subtract(1,"days"));
+    
+    const heatSumDataResponse = await fetch(
+        weatherStationDataURL + "?weatherStationId=" + selectedWeatherStationId 
+        + "&elementMeasurementTypes[]=TM"
+        + "&timeZone="  + TIMEZONE 
+        + "&startDate=" + heatSumStartDate.format(DATE_FORMAT) + "&startTime=0" 
+        + "&endDate=" + heatSumEndDate.format(DATE_FORMAT) + "&endTime=23"  
+        + "&logIntervalId=2"
+    );
+
+    if(! heatSumDataResponse.ok){
+        throw new Error("Response status: " + heatSumDataResponse.status);
+    }
+
+    const heatSumData = await heatSumDataResponse.json();
+
+    renderHeatSumResult(selectedWeatherStationId, calculateHeatSum(heatSumData), heatSumData.length, heatSumStartDate, heatSumEndDate);
+}
+
+function calculateHeatSum(heatSumData)
+{
+    let heatSum = 0.0;
+    heatSumData.forEach((obs) =>{
+        heatSum += Math.max(0.0, (obs.value - HEATSUM_BASE_TEMP));
+    });
+    return heatSum;
+}
+
+function renderHeatSumResult(selectedWeatherStationId, heatSum, numberOfDays, heatSumStartDate, heatSumEndDate)
+{
+    document.getElementById("heatSumBaseTemp").innerHTML=HEATSUM_BASE_TEMP;
+    appleWeatherStations.forEach((ws)=>{
+        if(ws.id == parseInt(selectedWeatherStationId))
+        {
+            document.getElementById("selectedWeatherStationName").innerHTML = ws.name;
+        }
+    });
+    document.getElementById("heatSumStartDateDisplay").innerHTML = heatSumStartDate.format(DATE_FORMAT);
+    document.getElementById("heatSumEndDateDisplay").innerHTML = heatSumEndDate.format(DATE_FORMAT);
+    document.getElementById("numberOfDays").innerHTML = numberOfDays;
+    document.getElementById("heatSum").innerHTML = heatSum.toFixed(1);
+}
+
+function getDailyRRData(hourlyData)
+{
+    let RRBuckets = {};
+    for(let i=0; i< hourlyData.length;i++)
+    {
+        let obs = hourlyData[i];
+        if(obs.elementMeasurementTypeId == "RR")
+        {
+            let date = setToTZMidnight(moment(obs.timeMeasured));
+            if(RRBuckets[date.unix()] == null)
+            {
+                RRBuckets[date.unix()] = [];
+            }
+            RRBuckets[date.unix()].push(obs.value);
+        }
+    }
+
+    let dailyRRData = [];
+    Object.keys(RRBuckets).forEach((key) => {
+        let dateBucket = RRBuckets[key];
+        let RRSum = dateBucket.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
+        let RR = {
+            timeMeasured: moment.unix(key).toISOString(),
+            elementMeasurementTypeId: "RR",
+            logIntervalId: 1,
+            value: RRSum
+        }
+        dailyRRData.push(RR);
+    });
+    
+    return dailyRRData;
+}
+
+function renderTable(hourlyData, dailyData)
+{
+    document.getElementById("weatherData").style.display="block";
+    let tableBody = document.getElementById("tableBody");
+    tableBody.innerHTML = "";
+    let currentDate = getStartDateHourly();
+    let today = setToTZMidnight(moment());
+    //console.info("today=" + today.format());
+    while(currentDate < today)
+    {
+        //console.info("currentDate=" + currentDate.format());
+        let nightTemps = getNightTempsForDate(moment(currentDate).tz(TIMEZONE), hourlyData);
+        //console.info(nightTemps);
+        let rowHTML = "<tr><td>" + currentDate.format(DATE_FORMAT) + "</td>";
+        
+        for(let i=0; i<nightTemps.length;i++)
+        {
+            rowHTML += "<td>" + nightTemps[i].toFixed(1) + "</td>";
+        }
+        dailyData.forEach((obs) =>{
+            if(moment(obs.timeMeasured).unix() == currentDate.unix())
+            {
+                rowHTML += "<td>" + obs.value.toFixed(1) + "</td>";
+            }
+        });
+        rowHTML += "</tr>"
+        tableBody.innerHTML += rowHTML;
+        currentDate.add(1,"days");
+    }
+}
+
+function getStartDateHourly()
+{
+    let daysBack = undefined;
+    document.getElementsByName("radioDays").forEach((radio)=>{
+        if(radio.checked)
+        {
+            daysBack = radio.value;
+        }
+    });
+    return setToTZMidnight(moment()).subtract(daysBack,"days");
+}
+
+function getEndDateHourly()
+{
+    return moment().tz(TIMEZONE).hour(12);
+}
+
+/**
+ * 
+ * @param date 
+ * @param {Array} weatherData 
+ * @return array[temp@19,temp@20,temp@21,temp@22, temp@23]
+ */
+function getNightTempsForDate(date, weatherData)
+{
+    // Create an array of the desired timestamps
+    let timestamps = [];
+    let nightTemps = [];
+    for(let i=19;i<=23;i++)
+    {
+        timestamps.push(date.hour(i).minute(0).second(0).millisecond(0).unix());
+    }
+    weatherData.forEach((wd)=>{
+        let timeMeasured = moment(wd.timeMeasured).unix();
+        //console.info(timeMeasured);
+        if(wd.elementMeasurementTypeId == "TM" && timestamps.indexOf(timeMeasured) >=0)
+        {
+            nightTemps[timestamps.indexOf(timeMeasured)] = wd.value;
+            //console.info("Found " + wd.timeMeasured + "at index " + tsArray.indexOf(timeMeasured));
+        }
+    });
+    return nightTemps;
+    //console.info(tsArray);
+}
+
+function setToTZMidnight(theDate)
+{
+    return theDate.tz(TIMEZONE).hour(0).minute(0).second(0).millisecond(0);
+}
\ No newline at end of file
diff --git a/cydiapomonella/templates/cydiapomonella/index.html b/cydiapomonella/templates/cydiapomonella/index.html
index f2d2ede5546f215dad09f6a0a852b982aa754b3e..d0f9921ee683279c8f034b93ce4daae060fcf392 100644
--- a/cydiapomonella/templates/cydiapomonella/index.html
+++ b/cydiapomonella/templates/cydiapomonella/index.html
@@ -1,821 +1,117 @@
 {% extends "base.html" %}
 {% load static %}
 {% comment %}
-
-#
-# Copyright (c) 2018 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# NIBIO Open Source License for more details.
-#
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
-
-# Author     :  Bhabesh
-# Start date :  June-2020 
-#
-#
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <http://www.gnu.org/licenses />.
+
+Author: Tor-Einar Skog <tor-einar.skog@nibio.no>
+Created: 2024-10-28
 {% endcomment %}
+
 {% load i18n l10n %}
+
 {% block title%}{% trans "Cydia pomonella" %}{%endblock%}
 
-{% block extendCSS %}
-<link rel="stylesheet"  type="text/css" href="{% static 'css/datatables.min.1.10.21.css' %}"/>
-<link href="{% static "css/3rdparty/jquery-ui.min.css" %}" rel="stylesheet" media="screen" />
-{% endblock %}
 {% block extendJS %}
-<script src="{% static "js/3rdparty/jquery-ui.min.js" %}"></script>
-<script src="{% static "js/datatables.min.1.10.21.js" %}"></script>
-<script src="{% static "js/handlebars4.7.6.js" %}"></script>
-
 <script src="{% static "js/moment.min.js" %}"></script>
 <script src="{% static "js/moment-timezone.js" %}"></script>
 <script src="{% static "js/moment-timezone-with-data.min.js" %}"></script>
-
-
-
+<script src="{% static "js/cydiapomonella.js" %}"></script>
 {% endblock %}
-{% block customCSS %}
-    <style>
-        /* Over ride datatable property to maintain default color */
-        .navbar-default {
-            background-color: #fff;
-            border-color:#fff;
-        }
-        
-        /* Text align center - used in datatable */
-        .colCenter {text-align: center;}
 
-        /* Data table odd stripe color */
-/*
-        .table-striped>tbody>tr:nth-child(odd)>th {
-            background-color: #ebf1d4 
-        }
-*/ 
-        /* Data table even stripe color */
-       .table-striped>tbody>tr:nth-child(even)>td {
-        background-color : #eeeeee 
-        }
-
-        body {
-            font-family: 'Source Sans Pro', sans-serif;
-        }
-        
-        table.table > tbody > tr > td {
-            background-color: white;
-            border-bottom: 3px solid #d9e6e4;
-            }
-		#contentContainer {
-			min-height: 250px;
-		}
-
-    </style>
-{% endblock %}
 {% block customJS %}
-{% csrf_token %}
 <script type="text/javascript">
-
-    var CONST_TIMEZONE  =   'Europe/Oslo';
-    var dateToday       =   new Date();
-    var dateYesterday   =   getAdjustDate(dateToday,1); 
-
-    var strEndDate      =   JSON.stringify(dateToday).substring(1,11);   
-    var CON_idSpecial   =   {
-                                    "Helgøy"    :   "536"
-                                ,   "Skiftun"   :   "537"
-                            }
-
-    /* Page onload function */
-    $(function(){
-        /* Calendar will not accept future dates including today */
-        //document.getElementById('idTxtDateInput').setAttribute("max", JSON.stringify(dateYesterday).substring(1,11));
-        $('#idTxtDateInput').removeClass('hasDatepicker');
-    });
-
-    $(document).ajaxStart(function(){
-        // Show image container
-        $("#divIdAjaxLoader").show();
-    });
-
-    $(document).ajaxComplete(function(){
-        // Hide image container
-        $("#divIdAjaxLoader").hide();
-    });
-
-
-    /* Function for check whether the choosed weather station is within special category (e.g. devis) */
-    function isSpecialWeatherStation(paramStationId)
-    {
-        var result = false;
-        $.each( CON_idSpecial, function( key, value ) {
-            if (paramStationId              === value)
-            {
-                result                      =   true;
-                return false; // exit the each loop
-            }
-        });
-        return result;
-    }
-
-
-
-
-    /* Function works on date picker onClose event */
-    function funDtPickerHeatSum()
-    {
-
-        var varWeatherId                =   $('#weatherStationId').find(':selected').val();
-        var strStartDate                =   undefined;
-        var varLogInIntervalHourly      =   '1h';
-        var varLogInIntervalDaily       =   '1d';
-        var varElementMeasurementTypes  =   ['TM'];
-
-        var jsonParamUrlData            =   '';
-        
-        var weatherStationIdParamJSON   =   getJsonData(varWeatherId);
-
-            if(typeof varWeatherId      === "undefined") 
-            {
-                varWeatherId            =   '$(#weatherStationId)';
-            }
-            else{
-                varWeatherId            =   getJsonData(varWeatherId).id;
-            }
-            
-            var startDate               =   new Date($('#idTxtDateInput').val());
-
-
-            if(isSpecialWeatherStation(varWeatherId)) 
-            {
-                strStartDate            =   JSON.stringify(getAdjustDate(startDate, 2 )).substring(1,11); 
-                jsonParamUrlData        =   getWeatherDataUrlParam(varWeatherId, strStartDate, strEndDate, varElementMeasurementTypes, varLogInIntervalHourly, CONST_TIMEZONE);
-                getAjaxHourlyData(jsonParamUrlData,weatherStationIdParamJSON,false);
-            }
-            else
-            {
-                strStartDate            =   JSON.stringify(getAdjustDate(startDate, 1 )).substring(1,11); 
-                jsonParamUrlData        =   getWeatherDataUrlParam(varWeatherId, strStartDate, strEndDate, varElementMeasurementTypes, varLogInIntervalDaily, CONST_TIMEZONE);
-                getAjaxDailyData (jsonParamUrlData,weatherStationIdParamJSON);
-            }
-
-    }
-
-    /* Date input  to get heat sum calculation */
-  /*
-    $('#idTxtDateInput').datepicker({
-        dateFormat: 'yy-mm-dd',
-        showOn: "both",
-        firstDay:1,
-        maxDate : 0,
-        onClose: function( selectedDate ) {
-            funDtPickerHeatSum();
-         }
-    });
-  */
-
-  $('#idTxtDateInput').change(function(){
-        funDtPickerHeatSum();
-    });
-    
-    /* Convert string to JSON */
-    function getJsonData(strData)
-    {
-        return JSON.parse(strData);
-    }
-
-
-    /* On change of drop down for weather stations */
-    $('#weatherStationId').change(function(){
-
-            var jsonParamUrlDataHourly      =    '';
-            var varStationPwd               =   '';
-            var varWeatherId                =   $('#weatherStationId').find(':selected').val();
-            var varElementMeasurementTypes  =   ['TM','RR'];
-            var varLogInIntervalHourly      =   '1h';
-
-            var weatherStationIdParamJSON   =   getJsonData(varWeatherId);
-
-            if(typeof varWeatherId          === "undefined")
-            {
-                varWeatherId                = '$(#weatherStationId)';
-            }
-            else
-            {
-                varWeatherId                =   getJsonData(varWeatherId).id;
-            }
-            
-
-
-            var radioDaysValue              =   $("input[name='radioDays']:checked").val();
-
-            var dateStartDate               =   getAdjustDate(dateToday,radioDaysValue); 
-            var strStartDate                =   JSON.stringify(dateStartDate).substring(1,11); 
-
-            if(isSpecialWeatherStation(varWeatherId)) 
-            {
-                var dateStartDate02         =   getAdjustDate(dateToday, (parseInt(radioDaysValue) + 1)); 
-                    strStartDate            =   JSON.stringify(dateStartDate02).substring(1,11);       
-            }
-
-            jsonParamUrlDataHourly          =  getWeatherDataUrlParam(varWeatherId, strStartDate, strEndDate, varElementMeasurementTypes, varLogInIntervalHourly, CONST_TIMEZONE );
-            
-            getAjaxHourlyData(jsonParamUrlDataHourly,weatherStationIdParamJSON,true);
-
-                //document.querySelector("#idTxtDateInput").valueAsDate = dateStartDate;
-                /*Calling function to calculate and place heatsum value based upon date placed on datepicker*/
-                //funDtPickerHeatSum();
-
-    });
-
-
-    /* Get the parameters of the URL for weather station */
-    function getWeatherDataUrlParam(varWeatherId, paramStartDate, strEndDate, paramElementMeasurementTypes, paramLogInInterval, paramTimeZone )
-    {
-
-
-        var jsonParamUrlDataHourly = '';
-
-        if(isSpecialWeatherStation(varWeatherId)) 
-        {
-            jsonParamUrlDataHourly          =   {
-                                                    logInterval                 :   paramLogInInterval,
-                                                    startDate                   :   paramStartDate,
-                                                    startTime                   :   '12',
-                                                    endDate                     :   strEndDate,
-                                                    endTime                     :   '11',
-                                                    timeZone                    :   paramTimeZone
-                                                }
-        }
-        else
-        {
-            jsonParamUrlDataHourly          =   {
-                                                    weatherStationId            :   varWeatherId,
-                                                    elementMeasurementTypes     :   paramElementMeasurementTypes, 
-                                                    logInterval                 :   paramLogInInterval,
-                                                    startDate                   :   paramStartDate,
-                                                    startTime                   :   '12',
-                                                    endDate                     :   strEndDate,
-                                                    endTime                     :   '11',
-                                                    timeZone                    :   paramTimeZone
-                                                }
-        }
-
-        return jsonParamUrlDataHourly;
-
-
-    }
-
-
-
-    /* Radio button click*/
-    $(document).on("click", ".clsRadioDays", function(event){
-        $('#weatherStationId').change();
-    });
-
-
-    /* Hourly data and Convert hourly data to daily data */
-    function setConvertHourlyData(data, flagActivate)
-    {
-        resultHeatSumDailyData              =   [];
-        var  tmElementMeasurementType       =   '';
-        var  tmSUM                          =   0.0;
-        var  strDate01_heatSum              =   '';
-        
-        var resultConvertData               =   [];
-
-        var strDate01                       =   '';
-        var strDate02                       =   '';
-        var date01                          =   null;
-        var data02                          =   null;
-        var time19                          =   '';
-        var time20                          =   '';
-        var time21                          =   '';
-        var time22                          =   '';
-        var time23                          =   '';
-        var rainFall                        =   0.0;
-
-        var hourCount                       =   0;
-        var tempval                         =   '';
-
-        strDate01                           =   JSON.stringify(getStrConvertedDate(data[0].timeMeasured)).substring(1,11);
-
-
-        date01                              =   new Date(strDate01);
-        date02                              =   new Date(strDate01);
-
-
-        for (var i=0; i<data.length; i++)
-        {
-           var varDtStartDate               =   undefined;
-           var radioDaysValue               =   $("input[name='radioDays']:checked").val();
-
-           var varDtData                    =   new Date($.trim(getStrConvertedDate(data[i].timeMeasured).substring(0,11)));
-           if(flagActivate)
-           {
-                varDtStartDate              =   new Date($.trim(getStrConvertedDate(getAdjustDate(new Date(),radioDaysValue)).substring(0,11)));
-           }
-           else
-           {
-                var startDate               = new Date($.trim($('#idTxtDateInput').val()));
-                varDtStartDate              = new Date($.trim(JSON.stringify(getAdjustDate(startDate, 1 )).substring(1,11)));
-           }
-
-            if (varDtData.getTime() >= varDtStartDate.getTime())
-            {
-
-            strDate02                       =  JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
-            switch (JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(12,14)) {
-                case '19':
-                        if(data[i].elementMeasurementTypeId==='TM')
-                        {
-                            
-                            time19          =   parseFloat(data[i].value).toFixed(1);
-                            tempval         =   data[i].elementMeasurementTypeId;
-                        }
-                        break;
-                case '20':
-                        if(data[i].elementMeasurementTypeId==='TM')
-                        {
-                            time20          =   parseFloat(data[i].value).toFixed(1);
-                            tempval         =   data[i].elementMeasurementTypeId;
-                        }
-                        break;           
-                case '21':
-                        if(data[i].elementMeasurementTypeId==='TM')
-                        {
-                            time21          =   parseFloat(data[i].value).toFixed(1);
-                            tempval         =   data[i].elementMeasurementTypeId;
-                        }
-                        break;           
-                case '22':
-                        if(data[i].elementMeasurementTypeId==='TM')
-                        {
-                            time22          =   parseFloat(data[i].value).toFixed(1);
-                            tempval         =   data[i].elementMeasurementTypeId;
-                        }
-                        break; 
-                case '23':
-                        if(data[i].elementMeasurementTypeId==='TM')
-                        {
-                            time23          =   parseFloat(data[i].value).toFixed(1);
-                            tempval         =   data[i].elementMeasurementTypeId;
-                        }
-                        break;                                   
-
-                default:
-                    break;
-            }
-
-            if(strDate01.localeCompare(strDate02) !== 0)
-            {
-                //TODO -- check usability of this below if clause
-                if($.trim(strDate01_heatSum))
-                {
-                    resultHeatSumDailyData.push({
-                        'elementMeasurementTypeId'  : tmElementMeasurementType,
-                        'value'                     : (tmSUM/24),
-                        'timeMeasured'              : strDate01_heatSum
-                    });
-                }
-                var decimalPlace            =   2;
-
-                /* Avoiding empty data */
-                if($.trim(time19))
-                {
-                    /* Creating JSON list for data table */
-                    resultConvertData.push({
-                                            resultDate: strDate01,
-                                            'time19' : time19,
-                                            'time20' : time20, 
-                                            'time21' : time21,
-                                            'time22' : time22,
-                                            'time23' : time23,
-                                            'rainFall':  rainFall.toFixed(1) 
-                                        });
-                }
-
-                strDate01                   =  JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
-                rainFall                    =   0.0;
-
-                tmSUM                       =   0.0;
-                tmElementMeasurementType    = '';
-                strDate01_heatSum           = data[i].timeMeasured;
-            }           
-
-
-            if(data[i].elementMeasurementTypeId === 'RR')
-            {
-                                rainFall    =   rainFall +  data[i].value; 
-            }
-
-
-
-            /* HEAT SUM -- Daily TM */
-            if(data[i].elementMeasurementTypeId==='TM')
-            {
-                tmElementMeasurementType    =   data[i].elementMeasurementTypeId;
-                tmSUM                       =   tmSUM + data[i].value;
-            }
-
-            } 
-
-        }
-
-        if(flagActivate)
-        {
-            getWeatherDataTable(resultConvertData);
-        }
-
-        
+    window.onload = (event) => {
+        renderWeatherstations();
     }
-
-
-
-    /*function which return decimal with required (e.g. 2) places without rounding */
-    function getDecimalPlace(num, place)
-    {
-        return num.toString().match(/^-?\d+(?:\.\d{0,place})?/)[0];
-    }
-
-    /* Calculate the daily TM value for HeatSum */
-    function getHeatSumValue(data)
-    {
-        var TM_BASE                         =   10;
-        var TM_Daily                        =   0.0;
-        var TM_SUM                          =   0.0;
-        var TM_Calc                         =   0.0;
-        var TM_NON_NEGATIVE                 =   0;
-
-        var counter                         =   undefined;
-        
-        if($.trim(data))
-        {
-            
-            for (var i=0; i<data.length; i++)
-            {
-                var strStartDateDtPicker    =   JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
-                
-                if(strStartDateDtPicker     === $('#idTxtDateInput').val())
-                {
-                    counter                 =   0;
-                    TM_NON_NEGATIVE         =   0;
-                 }
-                if(typeof counter           === "undefined") 
-                {
-                    //break;
-                }
-                else
-                {
-                    TM_Daily                =   data[counter].value;
-                    TM_Calc                 =   TM_Daily - TM_BASE;
-                    TM_NON_NEGATIVE         =   TM_NON_NEGATIVE + ((TM_Calc<0) ? 0 : TM_Calc);
-                    ++counter;
-                }
-
-            }
-            $('#idSpanWeatherStationName').html($('#weatherStationId').find(':selected').text());
-            $('#idSpanStartDate').html($('#idTxtDateInput').val());
-            $('#idSpanEndDate').html(JSON.stringify(dateYesterday).substring(1,11));
-            $('#idDivResultNonNegative').html(Math.round(TM_NON_NEGATIVE));
-            $('#idSpanDateDifference').html(dateDifferenceInDays(new Date($('#idTxtDateInput').val()), new Date()));
-        }
-        else
-        {
-            $('#idSpanWeatherStationName').html('');
-            $('#idSpanStartDate').html('');
-            $('#idSpanEndDate').html('');
-            $('#idDivResultNonNegative').html('');
-            $('#idSpanDateDifference').html('');
-        }
-    }
-
-
-    /* Populate the data table */
-    function getWeatherDataTable(weatherData)
-    {
-        if($.trim(weatherData))
-                            {
-                                $('#idTableWeather').DataTable({
-                                    "sDom"              :   '<t><"clearfix">', 
-									"lengthMenu"        :   [[50, -1], ["All"]],
-                                    "aaData"            :   weatherData,
-                                    "aoColumns"         : 
-                                    [
-                                        {
-                                            "mData"     :   "resultDate",
-                                            "render"    :   function(data, type, full, meta)
-                                                            {
-                                                                return data;
-                                                            },
-                                            "sClass" :  "colCenter",
-                                            "bSortable" : false
-                                        },
-                                        {
-                                            "mData" : "time19",
-                                            "render" :function(data, type, full, meta)
-                                                        {
-                                                            return data
-                                                        },
-                                            "sClass" :  "colCenter",
-                                            "bSortable" : false
-
-                                        },
-                                        {
-                                            "mData" : "time20",
-                                            "render" :function(data, type, full, meta)
-                                                        {
-                                                            return data
-                                                        },
-                                            "sClass" :  "colCenter",                                                        
-                                            "bSortable" : false
-                                        },
-                                         
-                                        {
-                                            "mData" : "time21",
-                                            "render" :function(data, type, full, meta)
-                                                        {
-                                                            return data
-                                                        },
-                                            "sClass" :  "colCenter",                                                        
-                                            "bSortable" : false
-                                        },
- {
-                                            "mData" : "time22",
-                                            "render" :function(data, type, full, meta)
-                                                        {
-                                                            return data
-                                                        },
-                                            "sClass" :  "colCenter",
-                                            "bSortable" : false
-                                        },
-                                        {
-                                            "mData" : "time23",
-                                            "render" :function(data, type, full, meta)
-                                                        {
-                                                            return data
-                                                        },
-                                            "sClass" :  "colCenter",                                                        
-                                            "bSortable" : false
-                                        } ,
-                                        {
-                                            "mData" : "rainFall",
-                                            "render" :function(data, type, full, meta)
-                                                        {
-                                                            return data
-                                                        },
-                                            "sClass" :  "colCenter",                                                        
-                                            "bSortable" : false
-                                        }                                                
-                                    ], 
-                                    destroy             : true
-                                });
-                                $('.dtr-data').addClass('text-wrap');
-                            }
-                            else
-                            {
-                                alert('Error in display of Data');
-
-                            }
-    }
-    
-
-    
-
-    /* Fetch hourly data through ajax call */
-    function getAjaxHourlyData(jsonParamUrlDataHourly,idJsonParam, flagActivate)
-    {
-        var resultData                      =   [];
-        var strUrl                          =   "";
-        if($.trim(idJsonParam.pas))
-        {
-            strUrl                          =  "https://weather.vips.nibio.no/rest/fruitwebdavis/id="+idJsonParam.id+"&pw="+idJsonParam.pas;
-        }
-        else
-        {
-            strUrl                          =   "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback";
-        }
-        $.ajax({
-                        url                 :   strUrl,
-                        type                :   'GET',
-                        cache               :   false,
-                        data                :   jsonParamUrlDataHourly,
-                        success             :   function (data) {
-                            resultHeatSumDailyData  = []; /* Re initialize */
-                            resultData              = [];
-                            if($.trim(data))
-                            {
-                                $('#idTableWeather').show();
-                                $('#idDivHeatSum').show();
-
-                                $('#divIdErrorWeatherStation').hide();
-                                resultData  =   data;
-                                setConvertHourlyData(resultData, flagActivate);
-
-                                if($.trim(idJsonParam.pas))
-                                {
-                                    
-                                    getHeatSumValue(resultHeatSumDailyData);
-                                    resultHeatSumDailyData  = [];
-                                }
-                                else
-                                {
-                                    funDtPickerHeatSum();
-                                }
-
-                                
-                            }
-                            else{
-                                $('#idDivHeatSum').hide();
-                                $('#divIdErrorWeatherStation').show();
-                                $('#idTableWeather').hide();
-                            }
-                        },
-                        error : function(xhr, status, error)
-                        {
-                            $('#idTableWeather').hide();
-                            $('#idDivHeatSum').hide();
-
-                        }
-            }); 
-
-            return resultData;
-
-    }
-
-
-
-    /* Fetch Daily data through ajax call */
-    function getAjaxDailyData(jsonParamUrlDataHourly,idJsonParam)
-    {
-        var resultData = [];
-            $.ajax({
-                            url             : "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback",
-                            type            : 'GET',
-                            cache           :   false,
-                            data            :   jsonParamUrlDataHourly,
-                            success         :   function (data) {
-                                resultData      = [];
-                                if($.trim(data))
-                                {
-                                    resultData  =   data;
-                                    getHeatSumValue(resultData);
-                                }
-                            },
-                            error           : function(xhr, status, error)
-                            {
-                                        //TODO
-                            }
-                }); 
-        
-            return resultData;
-    }
-
-
-    /* Adjust the dates as per radio button click to understand start date and end date*/
-    function getAdjustDate(date,days) 
-    {
-        var result                          = new Date(date);
-            result.setDate(result.getDate() - days);
-        return result;
-    }
-
-    /* Converted date as per TimeZone */
-    function getStrConvertedDate(existingDate)
-    {
-        return moment.tz(existingDate,CONST_TIMEZONE).format('YYYY-MM-DD HH:mm');
-    }
-
-    /* Date difference */
-    function dateDifferenceInDays(startDate, endDate)
-    {
-        var strEndDate                      = JSON.stringify(endDate).substring(1,11);
-        var dtEndDate                       = new Date(strEndDate);
-        var result                          = (dtEndDate - startDate)/(1000*60*60*24);
-        return result;
-    }
-
-</script> 
-
+</script>
 {% endblock %}
 
 {% block content %}
-
-<div class="col-sm-10">
-    <div id='divIdAjaxLoader' class="alert alert-warning alert-dismissable" style="display: none;" ><span class=".glyphicon .glyphicon-minus-sign"></span> <center><b>{% trans "Loading weather data !! If it takes forever, please contact the VIPS team." %}</b> </center></div>
+<div class="row">
+    <div class="col-md-12">
+        <h1>{% trans "Calculate the risk of attack by the coddling moth" %}</h1>
+        <p>Her kan du sjekke kveldstemperatur og nedbør for værstasjoner i regioner med eplevikler. <a href="https://www.vips-landbruk.no/information/12/#eplevikler">Les mer her</a>. <br> Dersom alle kriteriene for egglegging er oppfylt, beregn påløpt varmesum ved å skrive inn startdato
+            nedenfor.</p>
+    </div>
 </div>
-<div class="clearfix"></div>
 
-<div class="col-md-12" >
-    <h1>{% trans "Calculate the risk of attack by the coddling moth" %}</h1>
-</div>
-<div class="col-md-12">
-    <h4>Her kan du sjekke kveldstemperatur og nedbør for værstasjoner i regioner med eplevikler. <a href="https://www.vips-landbruk.no/information/12/#eplevikler">Les mer her</a>. <br> Dersom alle kriteriene for egglegging er oppfylt, beregn påløpt varmesum ved å skrive inn startdato nedenfor.</h4>
+
+<div class="row">
+    <div class="col-sm-10">
+        <div id='divIdErrorWeatherStation' class="alert alert-danger .alert-dismissable" style="display: none;"><span class=".glyphicon .glyphicon-minus-sign"></span> {% trans "No weather data available from the selected weather station" %}</div>
+    </div>
 </div>
-<div class="clearfix"></div>
-    <div class="container-fluid">
-    <div class="row">
-        <div class="col-sm-10">
-            <div id='divIdErrorWeatherStation' class="alert alert-danger .alert-dismissable" style="display: none;" ><span class=".glyphicon .glyphicon-minus-sign"></span> {% trans "No weather data available from the selected weather station" %}</div>
-        </div>
+<div class="row">
+    <div class="col-sm-4">
+        <select name="weatherStationName" id="weatherStationId" class="form-control" onchange="runModel();">
+            <option value="-1">-- {% trans "Select weather station" %} --</option>
+        </select>
     </div>
-    <div class="row ">
-        <div class="col-sm-4">
-            <select name="weatherStationName" id="weatherStationId" class="form-control">
-                <option value="-1">-- {% trans "Select weather station" %} --</option>
-                      <option value='{"id":"11","pas":""}'>Apelsvoll</option>
-                      <option value='{"id":"12","pas":""}'>Balestrand</option>
-                      <option value='{"id":"13","pas":""}'>Bø</option>
-                      <option value='{"id":"86","pas":""}'>Darbu</option>
-                      <option value='{"id":"19","pas":""}'>Gjerpen</option>
-                      <option value='{"id":"21","pas":""}'>Gvarv</option>
-                      <option value='{"id":"22","pas":""}'>Hjelmeland</option>
-                      <option value='{"id":"25","pas":""}'>Hønefoss</option>
-                      <option value='{"id":"27","pas":""}'>Kise</option>
-                      <option value='{"id":"29","pas":""}'>Landvik</option>
-                      <option value='{"id":"30","pas":""}'>Lier</option>
-                      <option value='{"id":"65","pas":""}'>Ljøsne</option>
-                      <option value='{"id":"32","pas":""}'>Lyngdal</option>
-                      <option value='{"id":"35","pas":""}'>Njøs</option>
-                      <option value='{"id":"41","pas":""}'>Rygge</option>
-                      <option value='{"id":"42","pas":""}'>Sande</option>
-                      <option value='{"id":"131","pas":""}'>Sandefjord</option>
-                      <option value='{"id":"64","pas":""}'>Slinde</option>
-                      <option value='{"id":"47","pas":""}'>Svelvik</option>
-                      <option value='{"id":"91","pas":""}'>Søve</option>
-                      <option value='{"id":"61","pas":""}'>Åsbakken</option>
-                      <!--
-                      <option value='{"id":"536","pas":"GF90esoleo"}'>Helgøy</option>
-                      <option value='{"id":"537","pas":"Kgsf72k388"}'>Skiftun</option>
-                      -->
-                      
-             </select>
-        </div>
-        <div class="col-sm-6">
-            <form>
-                <label class="radio-inline">
-                  <input type="radio" name="radioDays" class="clsRadioDays" value="7" checked>7 {% trans "days" %} 
-                </label>
-                <label class="radio-inline">
-                  <input type="radio" name="radioDays" class="clsRadioDays" value="14">14 {% trans "days" %}
-                </label>
-                <label class="radio-inline">
-                  <input type="radio" name="radioDays" class="clsRadioDays" value="21">21 {% trans "days" %}
-                </label>
-              </form>
-    
-        </div>
-    
-        <div class="row">
-            <div class="col-sm-10">
-                <table id="idTableWeather" class="table table-striped table-bordered dt-responsive nowrap collapsed " style="width:fit-content; display: none;">
-                    <thead>
-                        <tr>
-                            <th>{% trans "Date" %}</th>
-                            <th>{% trans "Temp at" %} 19</th>
-                            <th>{% trans "Temp at" %} 20</th>
-                            <th>{% trans "Temp at" %} 21</th>
-                            <th>{% trans "Temp at" %} 22</th>
-                            <th>{% trans "Temp at" %} 23</th>
-                            <th>{% trans "Daily rainfall" %}, mm</th>
-                        </tr>
-                    </thead>
-                 </table>
-    
-            </div>
-    
-        </div>
-    
-    
+    <div class="col-sm-6">
+        <form>
+            <label class="radio-inline">
+                <input type="radio" name="radioDays" value="7" checked onclick="runModel()">7 {% trans "days" %}
+            </label>
+            <label class="radio-inline">
+                <input type="radio" name="radioDays" value="14" onclick="runModel()">14 {% trans "days" %}
+            </label>
+            <label class="radio-inline">
+                <input type="radio" name="radioDays" value="21" onclick="runModel()">21 {% trans "days" %}
+            </label>
+        </form>
+
+    </div>
+</div>
+
+<div class="row">
+    <div class="col-sm-10">
+        <table id="weatherData" class="table table-bordered" style="display: none;">
+            <thead>
+                <tr>
+                    <th>{% trans "Date" %}</th>
+                    <th>{% trans "Temp at" %} 19</th>
+                    <th>{% trans "Temp at" %} 20</th>
+                    <th>{% trans "Temp at" %} 21</th>
+                    <th>{% trans "Temp at" %} 22</th>
+                    <th>{% trans "Temp at" %} 23</th>
+                    <th>{% trans "Daily rainfall" %}, mm</th>
+                </tr>
+            </thead>
+            <tbody id="tableBody"></tbody>
+        </table>
+
     </div>
+
 </div>
 
-<div class="container-fluid" id="idDivHeatSum" style="display: none;">
-    <div class="row ">
+<div class="container-fluid"  id="heatSumContainer" style="display: none;">
+    <div class="row" style="margin-bottom: 20px;">
         <h3>{% trans "Heat sum" %}</h3>
         <form class="form-inline">
             <div class="form-group form-inline">
-
-                <label for="nameTxtDateInput">{% trans "Calculate heat sum from date" %}:</label>
-                <input id="idTxtDateInput" name="nameTxtDateInput" class="form-control" type="date" placeholder="yyyy-mm-dd" onkeydown="return false" value="{% now "Y" %}-05-01" style="line-height: inherit;"/>
+                <label for="heatSumStartDate">{% trans "Calculate heat sum from date" %}:</label>
+                <input id="heatSumStartDate" name="heatSumStartDate" class="form-control" type="date" placeholder="yyyy-mm-dd" onchange="runHeatSumCalculations()" value="{% now "Y" %}-05-01" />
             </div>
-            <!-- button type="submit" class="btn btn-default">Submit</button -->
         </form>
     </div>
-    <div><br></div>
+
     <div class="row alert alert-success">
-    	{% trans "Heat sum, with a base temperature of 10 degrees Celcius, calculated for " %} <b><span id='idSpanWeatherStationName'>-</span></b>  {% trans "weather station for the period starting with" %}  <b><span id="idSpanStartDate">-</span></b> {% trans "and ending with" %} <b><span id="idSpanEndDate">--</span></b>  (<b><span id="idSpanDateDifference">-</span></b> {% trans "days" %}) {% trans "is" %} : <b><span id="idDivResultNonNegative"></span></b> {% trans "day degrees" %}
+        {% trans "Heat sum, with a base temperature of" %} <span id="heatSumBaseTemp"></span>&deg;C, {% trans  "calculated for " %} <b><span id='selectedWeatherStationName'>-</span></b> {% trans "weather station for the period starting with" %} <b><span id="heatSumStartDateDisplay">-</span></b> {% trans "and ending with" %} <b><span
+                id="heatSumEndDateDisplay">--</span></b> (<b><span id="numberOfDays">-</span></b> {% trans "days" %}) {% trans "is" %} : <b><span id="heatSum"></span></b> {% trans "day degrees" %}
     </div>
 </div>
 
+<div class="row" style="height: 50px;"></div>
 
 
 {% endblock %}
\ No newline at end of file
diff --git a/cydiapomonella/templates/cydiapomonella/index_old.html b/cydiapomonella/templates/cydiapomonella/index_old.html
new file mode 100644
index 0000000000000000000000000000000000000000..f2d2ede5546f215dad09f6a0a852b982aa754b3e
--- /dev/null
+++ b/cydiapomonella/templates/cydiapomonella/index_old.html
@@ -0,0 +1,821 @@
+{% extends "base.html" %}
+{% load static %}
+{% comment %}
+
+#
+# Copyright (c) 2018 NIBIO <http://www.nibio.no/>. 
+# 
+# This file is part of VIPSWeb.
+# VIPSWeb is free software: you can redistribute it and/or modify
+# it under the terms of the NIBIO Open Source License as published by 
+# NIBIO, either version 1 of the License, or (at your option) any
+# later version.
+# 
+# VIPSWeb is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# NIBIO Open Source License for more details.
+#
+# You should have received a copy of the NIBIO Open Source License
+# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
+# 
+
+# Author     :  Bhabesh
+# Start date :  June-2020 
+#
+#
+{% endcomment %}
+{% load i18n l10n %}
+{% block title%}{% trans "Cydia pomonella" %}{%endblock%}
+
+{% block extendCSS %}
+<link rel="stylesheet"  type="text/css" href="{% static 'css/datatables.min.1.10.21.css' %}"/>
+<link href="{% static "css/3rdparty/jquery-ui.min.css" %}" rel="stylesheet" media="screen" />
+{% endblock %}
+{% block extendJS %}
+<script src="{% static "js/3rdparty/jquery-ui.min.js" %}"></script>
+<script src="{% static "js/datatables.min.1.10.21.js" %}"></script>
+<script src="{% static "js/handlebars4.7.6.js" %}"></script>
+
+<script src="{% static "js/moment.min.js" %}"></script>
+<script src="{% static "js/moment-timezone.js" %}"></script>
+<script src="{% static "js/moment-timezone-with-data.min.js" %}"></script>
+
+
+
+{% endblock %}
+{% block customCSS %}
+    <style>
+        /* Over ride datatable property to maintain default color */
+        .navbar-default {
+            background-color: #fff;
+            border-color:#fff;
+        }
+        
+        /* Text align center - used in datatable */
+        .colCenter {text-align: center;}
+
+        /* Data table odd stripe color */
+/*
+        .table-striped>tbody>tr:nth-child(odd)>th {
+            background-color: #ebf1d4 
+        }
+*/ 
+        /* Data table even stripe color */
+       .table-striped>tbody>tr:nth-child(even)>td {
+        background-color : #eeeeee 
+        }
+
+        body {
+            font-family: 'Source Sans Pro', sans-serif;
+        }
+        
+        table.table > tbody > tr > td {
+            background-color: white;
+            border-bottom: 3px solid #d9e6e4;
+            }
+		#contentContainer {
+			min-height: 250px;
+		}
+
+    </style>
+{% endblock %}
+{% block customJS %}
+{% csrf_token %}
+<script type="text/javascript">
+
+    var CONST_TIMEZONE  =   'Europe/Oslo';
+    var dateToday       =   new Date();
+    var dateYesterday   =   getAdjustDate(dateToday,1); 
+
+    var strEndDate      =   JSON.stringify(dateToday).substring(1,11);   
+    var CON_idSpecial   =   {
+                                    "Helgøy"    :   "536"
+                                ,   "Skiftun"   :   "537"
+                            }
+
+    /* Page onload function */
+    $(function(){
+        /* Calendar will not accept future dates including today */
+        //document.getElementById('idTxtDateInput').setAttribute("max", JSON.stringify(dateYesterday).substring(1,11));
+        $('#idTxtDateInput').removeClass('hasDatepicker');
+    });
+
+    $(document).ajaxStart(function(){
+        // Show image container
+        $("#divIdAjaxLoader").show();
+    });
+
+    $(document).ajaxComplete(function(){
+        // Hide image container
+        $("#divIdAjaxLoader").hide();
+    });
+
+
+    /* Function for check whether the choosed weather station is within special category (e.g. devis) */
+    function isSpecialWeatherStation(paramStationId)
+    {
+        var result = false;
+        $.each( CON_idSpecial, function( key, value ) {
+            if (paramStationId              === value)
+            {
+                result                      =   true;
+                return false; // exit the each loop
+            }
+        });
+        return result;
+    }
+
+
+
+
+    /* Function works on date picker onClose event */
+    function funDtPickerHeatSum()
+    {
+
+        var varWeatherId                =   $('#weatherStationId').find(':selected').val();
+        var strStartDate                =   undefined;
+        var varLogInIntervalHourly      =   '1h';
+        var varLogInIntervalDaily       =   '1d';
+        var varElementMeasurementTypes  =   ['TM'];
+
+        var jsonParamUrlData            =   '';
+        
+        var weatherStationIdParamJSON   =   getJsonData(varWeatherId);
+
+            if(typeof varWeatherId      === "undefined") 
+            {
+                varWeatherId            =   '$(#weatherStationId)';
+            }
+            else{
+                varWeatherId            =   getJsonData(varWeatherId).id;
+            }
+            
+            var startDate               =   new Date($('#idTxtDateInput').val());
+
+
+            if(isSpecialWeatherStation(varWeatherId)) 
+            {
+                strStartDate            =   JSON.stringify(getAdjustDate(startDate, 2 )).substring(1,11); 
+                jsonParamUrlData        =   getWeatherDataUrlParam(varWeatherId, strStartDate, strEndDate, varElementMeasurementTypes, varLogInIntervalHourly, CONST_TIMEZONE);
+                getAjaxHourlyData(jsonParamUrlData,weatherStationIdParamJSON,false);
+            }
+            else
+            {
+                strStartDate            =   JSON.stringify(getAdjustDate(startDate, 1 )).substring(1,11); 
+                jsonParamUrlData        =   getWeatherDataUrlParam(varWeatherId, strStartDate, strEndDate, varElementMeasurementTypes, varLogInIntervalDaily, CONST_TIMEZONE);
+                getAjaxDailyData (jsonParamUrlData,weatherStationIdParamJSON);
+            }
+
+    }
+
+    /* Date input  to get heat sum calculation */
+  /*
+    $('#idTxtDateInput').datepicker({
+        dateFormat: 'yy-mm-dd',
+        showOn: "both",
+        firstDay:1,
+        maxDate : 0,
+        onClose: function( selectedDate ) {
+            funDtPickerHeatSum();
+         }
+    });
+  */
+
+  $('#idTxtDateInput').change(function(){
+        funDtPickerHeatSum();
+    });
+    
+    /* Convert string to JSON */
+    function getJsonData(strData)
+    {
+        return JSON.parse(strData);
+    }
+
+
+    /* On change of drop down for weather stations */
+    $('#weatherStationId').change(function(){
+
+            var jsonParamUrlDataHourly      =    '';
+            var varStationPwd               =   '';
+            var varWeatherId                =   $('#weatherStationId').find(':selected').val();
+            var varElementMeasurementTypes  =   ['TM','RR'];
+            var varLogInIntervalHourly      =   '1h';
+
+            var weatherStationIdParamJSON   =   getJsonData(varWeatherId);
+
+            if(typeof varWeatherId          === "undefined")
+            {
+                varWeatherId                = '$(#weatherStationId)';
+            }
+            else
+            {
+                varWeatherId                =   getJsonData(varWeatherId).id;
+            }
+            
+
+
+            var radioDaysValue              =   $("input[name='radioDays']:checked").val();
+
+            var dateStartDate               =   getAdjustDate(dateToday,radioDaysValue); 
+            var strStartDate                =   JSON.stringify(dateStartDate).substring(1,11); 
+
+            if(isSpecialWeatherStation(varWeatherId)) 
+            {
+                var dateStartDate02         =   getAdjustDate(dateToday, (parseInt(radioDaysValue) + 1)); 
+                    strStartDate            =   JSON.stringify(dateStartDate02).substring(1,11);       
+            }
+
+            jsonParamUrlDataHourly          =  getWeatherDataUrlParam(varWeatherId, strStartDate, strEndDate, varElementMeasurementTypes, varLogInIntervalHourly, CONST_TIMEZONE );
+            
+            getAjaxHourlyData(jsonParamUrlDataHourly,weatherStationIdParamJSON,true);
+
+                //document.querySelector("#idTxtDateInput").valueAsDate = dateStartDate;
+                /*Calling function to calculate and place heatsum value based upon date placed on datepicker*/
+                //funDtPickerHeatSum();
+
+    });
+
+
+    /* Get the parameters of the URL for weather station */
+    function getWeatherDataUrlParam(varWeatherId, paramStartDate, strEndDate, paramElementMeasurementTypes, paramLogInInterval, paramTimeZone )
+    {
+
+
+        var jsonParamUrlDataHourly = '';
+
+        if(isSpecialWeatherStation(varWeatherId)) 
+        {
+            jsonParamUrlDataHourly          =   {
+                                                    logInterval                 :   paramLogInInterval,
+                                                    startDate                   :   paramStartDate,
+                                                    startTime                   :   '12',
+                                                    endDate                     :   strEndDate,
+                                                    endTime                     :   '11',
+                                                    timeZone                    :   paramTimeZone
+                                                }
+        }
+        else
+        {
+            jsonParamUrlDataHourly          =   {
+                                                    weatherStationId            :   varWeatherId,
+                                                    elementMeasurementTypes     :   paramElementMeasurementTypes, 
+                                                    logInterval                 :   paramLogInInterval,
+                                                    startDate                   :   paramStartDate,
+                                                    startTime                   :   '12',
+                                                    endDate                     :   strEndDate,
+                                                    endTime                     :   '11',
+                                                    timeZone                    :   paramTimeZone
+                                                }
+        }
+
+        return jsonParamUrlDataHourly;
+
+
+    }
+
+
+
+    /* Radio button click*/
+    $(document).on("click", ".clsRadioDays", function(event){
+        $('#weatherStationId').change();
+    });
+
+
+    /* Hourly data and Convert hourly data to daily data */
+    function setConvertHourlyData(data, flagActivate)
+    {
+        resultHeatSumDailyData              =   [];
+        var  tmElementMeasurementType       =   '';
+        var  tmSUM                          =   0.0;
+        var  strDate01_heatSum              =   '';
+        
+        var resultConvertData               =   [];
+
+        var strDate01                       =   '';
+        var strDate02                       =   '';
+        var date01                          =   null;
+        var data02                          =   null;
+        var time19                          =   '';
+        var time20                          =   '';
+        var time21                          =   '';
+        var time22                          =   '';
+        var time23                          =   '';
+        var rainFall                        =   0.0;
+
+        var hourCount                       =   0;
+        var tempval                         =   '';
+
+        strDate01                           =   JSON.stringify(getStrConvertedDate(data[0].timeMeasured)).substring(1,11);
+
+
+        date01                              =   new Date(strDate01);
+        date02                              =   new Date(strDate01);
+
+
+        for (var i=0; i<data.length; i++)
+        {
+           var varDtStartDate               =   undefined;
+           var radioDaysValue               =   $("input[name='radioDays']:checked").val();
+
+           var varDtData                    =   new Date($.trim(getStrConvertedDate(data[i].timeMeasured).substring(0,11)));
+           if(flagActivate)
+           {
+                varDtStartDate              =   new Date($.trim(getStrConvertedDate(getAdjustDate(new Date(),radioDaysValue)).substring(0,11)));
+           }
+           else
+           {
+                var startDate               = new Date($.trim($('#idTxtDateInput').val()));
+                varDtStartDate              = new Date($.trim(JSON.stringify(getAdjustDate(startDate, 1 )).substring(1,11)));
+           }
+
+            if (varDtData.getTime() >= varDtStartDate.getTime())
+            {
+
+            strDate02                       =  JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
+            switch (JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(12,14)) {
+                case '19':
+                        if(data[i].elementMeasurementTypeId==='TM')
+                        {
+                            
+                            time19          =   parseFloat(data[i].value).toFixed(1);
+                            tempval         =   data[i].elementMeasurementTypeId;
+                        }
+                        break;
+                case '20':
+                        if(data[i].elementMeasurementTypeId==='TM')
+                        {
+                            time20          =   parseFloat(data[i].value).toFixed(1);
+                            tempval         =   data[i].elementMeasurementTypeId;
+                        }
+                        break;           
+                case '21':
+                        if(data[i].elementMeasurementTypeId==='TM')
+                        {
+                            time21          =   parseFloat(data[i].value).toFixed(1);
+                            tempval         =   data[i].elementMeasurementTypeId;
+                        }
+                        break;           
+                case '22':
+                        if(data[i].elementMeasurementTypeId==='TM')
+                        {
+                            time22          =   parseFloat(data[i].value).toFixed(1);
+                            tempval         =   data[i].elementMeasurementTypeId;
+                        }
+                        break; 
+                case '23':
+                        if(data[i].elementMeasurementTypeId==='TM')
+                        {
+                            time23          =   parseFloat(data[i].value).toFixed(1);
+                            tempval         =   data[i].elementMeasurementTypeId;
+                        }
+                        break;                                   
+
+                default:
+                    break;
+            }
+
+            if(strDate01.localeCompare(strDate02) !== 0)
+            {
+                //TODO -- check usability of this below if clause
+                if($.trim(strDate01_heatSum))
+                {
+                    resultHeatSumDailyData.push({
+                        'elementMeasurementTypeId'  : tmElementMeasurementType,
+                        'value'                     : (tmSUM/24),
+                        'timeMeasured'              : strDate01_heatSum
+                    });
+                }
+                var decimalPlace            =   2;
+
+                /* Avoiding empty data */
+                if($.trim(time19))
+                {
+                    /* Creating JSON list for data table */
+                    resultConvertData.push({
+                                            resultDate: strDate01,
+                                            'time19' : time19,
+                                            'time20' : time20, 
+                                            'time21' : time21,
+                                            'time22' : time22,
+                                            'time23' : time23,
+                                            'rainFall':  rainFall.toFixed(1) 
+                                        });
+                }
+
+                strDate01                   =  JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
+                rainFall                    =   0.0;
+
+                tmSUM                       =   0.0;
+                tmElementMeasurementType    = '';
+                strDate01_heatSum           = data[i].timeMeasured;
+            }           
+
+
+            if(data[i].elementMeasurementTypeId === 'RR')
+            {
+                                rainFall    =   rainFall +  data[i].value; 
+            }
+
+
+
+            /* HEAT SUM -- Daily TM */
+            if(data[i].elementMeasurementTypeId==='TM')
+            {
+                tmElementMeasurementType    =   data[i].elementMeasurementTypeId;
+                tmSUM                       =   tmSUM + data[i].value;
+            }
+
+            } 
+
+        }
+
+        if(flagActivate)
+        {
+            getWeatherDataTable(resultConvertData);
+        }
+
+        
+    }
+
+
+
+    /*function which return decimal with required (e.g. 2) places without rounding */
+    function getDecimalPlace(num, place)
+    {
+        return num.toString().match(/^-?\d+(?:\.\d{0,place})?/)[0];
+    }
+
+    /* Calculate the daily TM value for HeatSum */
+    function getHeatSumValue(data)
+    {
+        var TM_BASE                         =   10;
+        var TM_Daily                        =   0.0;
+        var TM_SUM                          =   0.0;
+        var TM_Calc                         =   0.0;
+        var TM_NON_NEGATIVE                 =   0;
+
+        var counter                         =   undefined;
+        
+        if($.trim(data))
+        {
+            
+            for (var i=0; i<data.length; i++)
+            {
+                var strStartDateDtPicker    =   JSON.stringify(getStrConvertedDate(data[i].timeMeasured)).substring(1,11);
+                
+                if(strStartDateDtPicker     === $('#idTxtDateInput').val())
+                {
+                    counter                 =   0;
+                    TM_NON_NEGATIVE         =   0;
+                 }
+                if(typeof counter           === "undefined") 
+                {
+                    //break;
+                }
+                else
+                {
+                    TM_Daily                =   data[counter].value;
+                    TM_Calc                 =   TM_Daily - TM_BASE;
+                    TM_NON_NEGATIVE         =   TM_NON_NEGATIVE + ((TM_Calc<0) ? 0 : TM_Calc);
+                    ++counter;
+                }
+
+            }
+            $('#idSpanWeatherStationName').html($('#weatherStationId').find(':selected').text());
+            $('#idSpanStartDate').html($('#idTxtDateInput').val());
+            $('#idSpanEndDate').html(JSON.stringify(dateYesterday).substring(1,11));
+            $('#idDivResultNonNegative').html(Math.round(TM_NON_NEGATIVE));
+            $('#idSpanDateDifference').html(dateDifferenceInDays(new Date($('#idTxtDateInput').val()), new Date()));
+        }
+        else
+        {
+            $('#idSpanWeatherStationName').html('');
+            $('#idSpanStartDate').html('');
+            $('#idSpanEndDate').html('');
+            $('#idDivResultNonNegative').html('');
+            $('#idSpanDateDifference').html('');
+        }
+    }
+
+
+    /* Populate the data table */
+    function getWeatherDataTable(weatherData)
+    {
+        if($.trim(weatherData))
+                            {
+                                $('#idTableWeather').DataTable({
+                                    "sDom"              :   '<t><"clearfix">', 
+									"lengthMenu"        :   [[50, -1], ["All"]],
+                                    "aaData"            :   weatherData,
+                                    "aoColumns"         : 
+                                    [
+                                        {
+                                            "mData"     :   "resultDate",
+                                            "render"    :   function(data, type, full, meta)
+                                                            {
+                                                                return data;
+                                                            },
+                                            "sClass" :  "colCenter",
+                                            "bSortable" : false
+                                        },
+                                        {
+                                            "mData" : "time19",
+                                            "render" :function(data, type, full, meta)
+                                                        {
+                                                            return data
+                                                        },
+                                            "sClass" :  "colCenter",
+                                            "bSortable" : false
+
+                                        },
+                                        {
+                                            "mData" : "time20",
+                                            "render" :function(data, type, full, meta)
+                                                        {
+                                                            return data
+                                                        },
+                                            "sClass" :  "colCenter",                                                        
+                                            "bSortable" : false
+                                        },
+                                         
+                                        {
+                                            "mData" : "time21",
+                                            "render" :function(data, type, full, meta)
+                                                        {
+                                                            return data
+                                                        },
+                                            "sClass" :  "colCenter",                                                        
+                                            "bSortable" : false
+                                        },
+ {
+                                            "mData" : "time22",
+                                            "render" :function(data, type, full, meta)
+                                                        {
+                                                            return data
+                                                        },
+                                            "sClass" :  "colCenter",
+                                            "bSortable" : false
+                                        },
+                                        {
+                                            "mData" : "time23",
+                                            "render" :function(data, type, full, meta)
+                                                        {
+                                                            return data
+                                                        },
+                                            "sClass" :  "colCenter",                                                        
+                                            "bSortable" : false
+                                        } ,
+                                        {
+                                            "mData" : "rainFall",
+                                            "render" :function(data, type, full, meta)
+                                                        {
+                                                            return data
+                                                        },
+                                            "sClass" :  "colCenter",                                                        
+                                            "bSortable" : false
+                                        }                                                
+                                    ], 
+                                    destroy             : true
+                                });
+                                $('.dtr-data').addClass('text-wrap');
+                            }
+                            else
+                            {
+                                alert('Error in display of Data');
+
+                            }
+    }
+    
+
+    
+
+    /* Fetch hourly data through ajax call */
+    function getAjaxHourlyData(jsonParamUrlDataHourly,idJsonParam, flagActivate)
+    {
+        var resultData                      =   [];
+        var strUrl                          =   "";
+        if($.trim(idJsonParam.pas))
+        {
+            strUrl                          =  "https://weather.vips.nibio.no/rest/fruitwebdavis/id="+idJsonParam.id+"&pw="+idJsonParam.pas;
+        }
+        else
+        {
+            strUrl                          =   "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback";
+        }
+        $.ajax({
+                        url                 :   strUrl,
+                        type                :   'GET',
+                        cache               :   false,
+                        data                :   jsonParamUrlDataHourly,
+                        success             :   function (data) {
+                            resultHeatSumDailyData  = []; /* Re initialize */
+                            resultData              = [];
+                            if($.trim(data))
+                            {
+                                $('#idTableWeather').show();
+                                $('#idDivHeatSum').show();
+
+                                $('#divIdErrorWeatherStation').hide();
+                                resultData  =   data;
+                                setConvertHourlyData(resultData, flagActivate);
+
+                                if($.trim(idJsonParam.pas))
+                                {
+                                    
+                                    getHeatSumValue(resultHeatSumDailyData);
+                                    resultHeatSumDailyData  = [];
+                                }
+                                else
+                                {
+                                    funDtPickerHeatSum();
+                                }
+
+                                
+                            }
+                            else{
+                                $('#idDivHeatSum').hide();
+                                $('#divIdErrorWeatherStation').show();
+                                $('#idTableWeather').hide();
+                            }
+                        },
+                        error : function(xhr, status, error)
+                        {
+                            $('#idTableWeather').hide();
+                            $('#idDivHeatSum').hide();
+
+                        }
+            }); 
+
+            return resultData;
+
+    }
+
+
+
+    /* Fetch Daily data through ajax call */
+    function getAjaxDailyData(jsonParamUrlDataHourly,idJsonParam)
+    {
+        var resultData = [];
+            $.ajax({
+                            url             : "https://lmt.nibio.no/services/rest/vips/getdata/forecastfallback",
+                            type            : 'GET',
+                            cache           :   false,
+                            data            :   jsonParamUrlDataHourly,
+                            success         :   function (data) {
+                                resultData      = [];
+                                if($.trim(data))
+                                {
+                                    resultData  =   data;
+                                    getHeatSumValue(resultData);
+                                }
+                            },
+                            error           : function(xhr, status, error)
+                            {
+                                        //TODO
+                            }
+                }); 
+        
+            return resultData;
+    }
+
+
+    /* Adjust the dates as per radio button click to understand start date and end date*/
+    function getAdjustDate(date,days) 
+    {
+        var result                          = new Date(date);
+            result.setDate(result.getDate() - days);
+        return result;
+    }
+
+    /* Converted date as per TimeZone */
+    function getStrConvertedDate(existingDate)
+    {
+        return moment.tz(existingDate,CONST_TIMEZONE).format('YYYY-MM-DD HH:mm');
+    }
+
+    /* Date difference */
+    function dateDifferenceInDays(startDate, endDate)
+    {
+        var strEndDate                      = JSON.stringify(endDate).substring(1,11);
+        var dtEndDate                       = new Date(strEndDate);
+        var result                          = (dtEndDate - startDate)/(1000*60*60*24);
+        return result;
+    }
+
+</script> 
+
+{% endblock %}
+
+{% block content %}
+
+<div class="col-sm-10">
+    <div id='divIdAjaxLoader' class="alert alert-warning alert-dismissable" style="display: none;" ><span class=".glyphicon .glyphicon-minus-sign"></span> <center><b>{% trans "Loading weather data !! If it takes forever, please contact the VIPS team." %}</b> </center></div>
+</div>
+<div class="clearfix"></div>
+
+<div class="col-md-12" >
+    <h1>{% trans "Calculate the risk of attack by the coddling moth" %}</h1>
+</div>
+<div class="col-md-12">
+    <h4>Her kan du sjekke kveldstemperatur og nedbør for værstasjoner i regioner med eplevikler. <a href="https://www.vips-landbruk.no/information/12/#eplevikler">Les mer her</a>. <br> Dersom alle kriteriene for egglegging er oppfylt, beregn påløpt varmesum ved å skrive inn startdato nedenfor.</h4>
+</div>
+<div class="clearfix"></div>
+    <div class="container-fluid">
+    <div class="row">
+        <div class="col-sm-10">
+            <div id='divIdErrorWeatherStation' class="alert alert-danger .alert-dismissable" style="display: none;" ><span class=".glyphicon .glyphicon-minus-sign"></span> {% trans "No weather data available from the selected weather station" %}</div>
+        </div>
+    </div>
+    <div class="row ">
+        <div class="col-sm-4">
+            <select name="weatherStationName" id="weatherStationId" class="form-control">
+                <option value="-1">-- {% trans "Select weather station" %} --</option>
+                      <option value='{"id":"11","pas":""}'>Apelsvoll</option>
+                      <option value='{"id":"12","pas":""}'>Balestrand</option>
+                      <option value='{"id":"13","pas":""}'>Bø</option>
+                      <option value='{"id":"86","pas":""}'>Darbu</option>
+                      <option value='{"id":"19","pas":""}'>Gjerpen</option>
+                      <option value='{"id":"21","pas":""}'>Gvarv</option>
+                      <option value='{"id":"22","pas":""}'>Hjelmeland</option>
+                      <option value='{"id":"25","pas":""}'>Hønefoss</option>
+                      <option value='{"id":"27","pas":""}'>Kise</option>
+                      <option value='{"id":"29","pas":""}'>Landvik</option>
+                      <option value='{"id":"30","pas":""}'>Lier</option>
+                      <option value='{"id":"65","pas":""}'>Ljøsne</option>
+                      <option value='{"id":"32","pas":""}'>Lyngdal</option>
+                      <option value='{"id":"35","pas":""}'>Njøs</option>
+                      <option value='{"id":"41","pas":""}'>Rygge</option>
+                      <option value='{"id":"42","pas":""}'>Sande</option>
+                      <option value='{"id":"131","pas":""}'>Sandefjord</option>
+                      <option value='{"id":"64","pas":""}'>Slinde</option>
+                      <option value='{"id":"47","pas":""}'>Svelvik</option>
+                      <option value='{"id":"91","pas":""}'>Søve</option>
+                      <option value='{"id":"61","pas":""}'>Åsbakken</option>
+                      <!--
+                      <option value='{"id":"536","pas":"GF90esoleo"}'>Helgøy</option>
+                      <option value='{"id":"537","pas":"Kgsf72k388"}'>Skiftun</option>
+                      -->
+                      
+             </select>
+        </div>
+        <div class="col-sm-6">
+            <form>
+                <label class="radio-inline">
+                  <input type="radio" name="radioDays" class="clsRadioDays" value="7" checked>7 {% trans "days" %} 
+                </label>
+                <label class="radio-inline">
+                  <input type="radio" name="radioDays" class="clsRadioDays" value="14">14 {% trans "days" %}
+                </label>
+                <label class="radio-inline">
+                  <input type="radio" name="radioDays" class="clsRadioDays" value="21">21 {% trans "days" %}
+                </label>
+              </form>
+    
+        </div>
+    
+        <div class="row">
+            <div class="col-sm-10">
+                <table id="idTableWeather" class="table table-striped table-bordered dt-responsive nowrap collapsed " style="width:fit-content; display: none;">
+                    <thead>
+                        <tr>
+                            <th>{% trans "Date" %}</th>
+                            <th>{% trans "Temp at" %} 19</th>
+                            <th>{% trans "Temp at" %} 20</th>
+                            <th>{% trans "Temp at" %} 21</th>
+                            <th>{% trans "Temp at" %} 22</th>
+                            <th>{% trans "Temp at" %} 23</th>
+                            <th>{% trans "Daily rainfall" %}, mm</th>
+                        </tr>
+                    </thead>
+                 </table>
+    
+            </div>
+    
+        </div>
+    
+    
+    </div>
+</div>
+
+<div class="container-fluid" id="idDivHeatSum" style="display: none;">
+    <div class="row ">
+        <h3>{% trans "Heat sum" %}</h3>
+        <form class="form-inline">
+            <div class="form-group form-inline">
+
+                <label for="nameTxtDateInput">{% trans "Calculate heat sum from date" %}:</label>
+                <input id="idTxtDateInput" name="nameTxtDateInput" class="form-control" type="date" placeholder="yyyy-mm-dd" onkeydown="return false" value="{% now "Y" %}-05-01" style="line-height: inherit;"/>
+            </div>
+            <!-- button type="submit" class="btn btn-default">Submit</button -->
+        </form>
+    </div>
+    <div><br></div>
+    <div class="row alert alert-success">
+    	{% trans "Heat sum, with a base temperature of 10 degrees Celcius, calculated for " %} <b><span id='idSpanWeatherStationName'>-</span></b>  {% trans "weather station for the period starting with" %}  <b><span id="idSpanStartDate">-</span></b> {% trans "and ending with" %} <b><span id="idSpanEndDate">--</span></b>  (<b><span id="idSpanDateDifference">-</span></b> {% trans "days" %}) {% trans "is" %} : <b><span id="idDivResultNonNegative"></span></b> {% trans "day degrees" %}
+    </div>
+</div>
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/cydiapomonella/views.py b/cydiapomonella/views.py
index d94b97a5064b1490c4df3870f8560e9359a55477..3dceb66b6aa4ef12cfda6bb5527fa15ab065f24b 100644
--- a/cydiapomonella/views.py
+++ b/cydiapomonella/views.py
@@ -32,4 +32,12 @@ def index(request):
 
     }
     return render(request,'cydiapomonella/index.html', context)
+    #return HttpResponse("Hello - 01 !!.. This is new app for VIPSWeb")
+
+def index_new(request):
+    
+    context = {
+
+    }
+    return render(request,'cydiapomonella/index_new.html', context)
     #return HttpResponse("Hello - 01 !!.. This is new app for VIPSWeb")
\ No newline at end of file
diff --git a/observations/locale/bg/LC_MESSAGES/django.po b/observations/locale/bg/LC_MESSAGES/django.po
index 24ae1e292ef96b9e5a0b8f311d6195feeafe6920..3e687a3ce713895c5c3b920d581f4bab7b34114e 100644
--- a/observations/locale/bg/LC_MESSAGES/django.po
+++ b/observations/locale/bg/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,29 +29,31 @@ msgid "Description"
 msgstr ""
 
 #: observations/templates/observations/detail.html:36
-#: observations/templates/observations/index.html:46
-#: observations/templates/observations/index.html:74
+#: observations/templates/observations/index.html:60
+#: observations/templates/observations/index.html:61
+#: observations/templates/observations/index.html:89
 #: observations/templates/observations/index_old.html:63
 #: observations/templates/observations/timeseries.html:34
 msgid "Organism"
 msgstr ""
 
 #: observations/templates/observations/detail.html:38
-#: observations/templates/observations/index.html:50
-#: observations/templates/observations/index.html:75
+#: observations/templates/observations/index.html:65
+#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:90
 #: observations/templates/observations/index_old.html:64
 #: observations/templates/observations/timeseries.html:36
 msgid "Crop"
 msgstr ""
 
 #: observations/templates/observations/detail.html:40
-#: observations/templates/observations/index.html:73
+#: observations/templates/observations/index.html:88
 #: observations/templates/observations/index_old.html:62
 msgid "Date of observation"
 msgstr ""
 
 #: observations/templates/observations/detail.html:43
-#: observations/templates/observations/index.html:77
+#: observations/templates/observations/index.html:92
 #: observations/templates/observations/timeseries.html:23
 #: observations/templates/observations/timeseries.html:28
 msgid "Time series"
@@ -95,32 +97,43 @@ msgstr ""
 msgid "Current date"
 msgstr ""
 
-#: observations/templates/observations/index.html:54
-msgid "Crop categories"
+#: observations/templates/observations/index.html:41
+#: observations/templates/observations/index_old.html:49
+msgid "From"
 msgstr ""
 
-#: observations/templates/observations/index.html:59
+#: observations/templates/observations/index.html:45
+#: observations/templates/observations/index_old.html:53
+msgid "To"
+msgstr ""
+
+#: observations/templates/observations/index.html:52
 msgid "Include registrations without pest presence"
 msgstr ""
 
-#: observations/templates/observations/index.html:62
+#: observations/templates/observations/index.html:70
+#: observations/templates/observations/index.html:71
+msgid "Crop categories"
+msgstr ""
+
+#: observations/templates/observations/index.html:76
 msgid "Filter"
 msgstr ""
 
-#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:82
 msgid "No observations found for specified search criteria"
 msgstr ""
 
-#: observations/templates/observations/index.html:69
+#: observations/templates/observations/index.html:84
 msgid "Download as Excel"
 msgstr ""
 
-#: observations/templates/observations/index.html:76
+#: observations/templates/observations/index.html:91
 #: observations/templates/observations/index_old.html:65
 msgid "Heading"
 msgstr ""
 
-#: observations/templates/observations/index.html:78
+#: observations/templates/observations/index.html:93
 msgid "Details"
 msgstr ""
 
@@ -128,14 +141,6 @@ msgstr ""
 msgid "All pests"
 msgstr ""
 
-#: observations/templates/observations/index_old.html:49
-msgid "From"
-msgstr ""
-
-#: observations/templates/observations/index_old.html:53
-msgid "To"
-msgstr ""
-
 #: observations/templates/observations/index_old.html:55
 msgid "Date search"
 msgstr ""
diff --git a/observations/locale/bs/LC_MESSAGES/django.po b/observations/locale/bs/LC_MESSAGES/django.po
index b23165f9ec0230d0ddb1519c6fe01b6e827e0946..c738aed7dbbdb1d6c033a021ae08f6ba1ec82608 100644
--- a/observations/locale/bs/LC_MESSAGES/django.po
+++ b/observations/locale/bs/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -30,29 +30,31 @@ msgid "Description"
 msgstr ""
 
 #: observations/templates/observations/detail.html:36
-#: observations/templates/observations/index.html:46
-#: observations/templates/observations/index.html:74
+#: observations/templates/observations/index.html:60
+#: observations/templates/observations/index.html:61
+#: observations/templates/observations/index.html:89
 #: observations/templates/observations/index_old.html:63
 #: observations/templates/observations/timeseries.html:34
 msgid "Organism"
 msgstr ""
 
 #: observations/templates/observations/detail.html:38
-#: observations/templates/observations/index.html:50
-#: observations/templates/observations/index.html:75
+#: observations/templates/observations/index.html:65
+#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:90
 #: observations/templates/observations/index_old.html:64
 #: observations/templates/observations/timeseries.html:36
 msgid "Crop"
 msgstr ""
 
 #: observations/templates/observations/detail.html:40
-#: observations/templates/observations/index.html:73
+#: observations/templates/observations/index.html:88
 #: observations/templates/observations/index_old.html:62
 msgid "Date of observation"
 msgstr ""
 
 #: observations/templates/observations/detail.html:43
-#: observations/templates/observations/index.html:77
+#: observations/templates/observations/index.html:92
 #: observations/templates/observations/timeseries.html:23
 #: observations/templates/observations/timeseries.html:28
 msgid "Time series"
@@ -96,32 +98,43 @@ msgstr ""
 msgid "Current date"
 msgstr ""
 
-#: observations/templates/observations/index.html:54
-msgid "Crop categories"
+#: observations/templates/observations/index.html:41
+#: observations/templates/observations/index_old.html:49
+msgid "From"
 msgstr ""
 
-#: observations/templates/observations/index.html:59
+#: observations/templates/observations/index.html:45
+#: observations/templates/observations/index_old.html:53
+msgid "To"
+msgstr ""
+
+#: observations/templates/observations/index.html:52
 msgid "Include registrations without pest presence"
 msgstr ""
 
-#: observations/templates/observations/index.html:62
+#: observations/templates/observations/index.html:70
+#: observations/templates/observations/index.html:71
+msgid "Crop categories"
+msgstr ""
+
+#: observations/templates/observations/index.html:76
 msgid "Filter"
 msgstr ""
 
-#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:82
 msgid "No observations found for specified search criteria"
 msgstr ""
 
-#: observations/templates/observations/index.html:69
+#: observations/templates/observations/index.html:84
 msgid "Download as Excel"
 msgstr ""
 
-#: observations/templates/observations/index.html:76
+#: observations/templates/observations/index.html:91
 #: observations/templates/observations/index_old.html:65
 msgid "Heading"
 msgstr ""
 
-#: observations/templates/observations/index.html:78
+#: observations/templates/observations/index.html:93
 msgid "Details"
 msgstr ""
 
@@ -129,14 +142,6 @@ msgstr ""
 msgid "All pests"
 msgstr ""
 
-#: observations/templates/observations/index_old.html:49
-msgid "From"
-msgstr ""
-
-#: observations/templates/observations/index_old.html:53
-msgid "To"
-msgstr ""
-
 #: observations/templates/observations/index_old.html:55
 msgid "Date search"
 msgstr ""
diff --git a/observations/locale/de/LC_MESSAGES/django.po b/observations/locale/de/LC_MESSAGES/django.po
index 24ae1e292ef96b9e5a0b8f311d6195feeafe6920..3e687a3ce713895c5c3b920d581f4bab7b34114e 100755
--- a/observations/locale/de/LC_MESSAGES/django.po
+++ b/observations/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,29 +29,31 @@ msgid "Description"
 msgstr ""
 
 #: observations/templates/observations/detail.html:36
-#: observations/templates/observations/index.html:46
-#: observations/templates/observations/index.html:74
+#: observations/templates/observations/index.html:60
+#: observations/templates/observations/index.html:61
+#: observations/templates/observations/index.html:89
 #: observations/templates/observations/index_old.html:63
 #: observations/templates/observations/timeseries.html:34
 msgid "Organism"
 msgstr ""
 
 #: observations/templates/observations/detail.html:38
-#: observations/templates/observations/index.html:50
-#: observations/templates/observations/index.html:75
+#: observations/templates/observations/index.html:65
+#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:90
 #: observations/templates/observations/index_old.html:64
 #: observations/templates/observations/timeseries.html:36
 msgid "Crop"
 msgstr ""
 
 #: observations/templates/observations/detail.html:40
-#: observations/templates/observations/index.html:73
+#: observations/templates/observations/index.html:88
 #: observations/templates/observations/index_old.html:62
 msgid "Date of observation"
 msgstr ""
 
 #: observations/templates/observations/detail.html:43
-#: observations/templates/observations/index.html:77
+#: observations/templates/observations/index.html:92
 #: observations/templates/observations/timeseries.html:23
 #: observations/templates/observations/timeseries.html:28
 msgid "Time series"
@@ -95,32 +97,43 @@ msgstr ""
 msgid "Current date"
 msgstr ""
 
-#: observations/templates/observations/index.html:54
-msgid "Crop categories"
+#: observations/templates/observations/index.html:41
+#: observations/templates/observations/index_old.html:49
+msgid "From"
 msgstr ""
 
-#: observations/templates/observations/index.html:59
+#: observations/templates/observations/index.html:45
+#: observations/templates/observations/index_old.html:53
+msgid "To"
+msgstr ""
+
+#: observations/templates/observations/index.html:52
 msgid "Include registrations without pest presence"
 msgstr ""
 
-#: observations/templates/observations/index.html:62
+#: observations/templates/observations/index.html:70
+#: observations/templates/observations/index.html:71
+msgid "Crop categories"
+msgstr ""
+
+#: observations/templates/observations/index.html:76
 msgid "Filter"
 msgstr ""
 
-#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:82
 msgid "No observations found for specified search criteria"
 msgstr ""
 
-#: observations/templates/observations/index.html:69
+#: observations/templates/observations/index.html:84
 msgid "Download as Excel"
 msgstr ""
 
-#: observations/templates/observations/index.html:76
+#: observations/templates/observations/index.html:91
 #: observations/templates/observations/index_old.html:65
 msgid "Heading"
 msgstr ""
 
-#: observations/templates/observations/index.html:78
+#: observations/templates/observations/index.html:93
 msgid "Details"
 msgstr ""
 
@@ -128,14 +141,6 @@ msgstr ""
 msgid "All pests"
 msgstr ""
 
-#: observations/templates/observations/index_old.html:49
-msgid "From"
-msgstr ""
-
-#: observations/templates/observations/index_old.html:53
-msgid "To"
-msgstr ""
-
 #: observations/templates/observations/index_old.html:55
 msgid "Date search"
 msgstr ""
diff --git a/observations/locale/fi/LC_MESSAGES/django.po b/observations/locale/fi/LC_MESSAGES/django.po
index 24ae1e292ef96b9e5a0b8f311d6195feeafe6920..3e687a3ce713895c5c3b920d581f4bab7b34114e 100644
--- a/observations/locale/fi/LC_MESSAGES/django.po
+++ b/observations/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,29 +29,31 @@ msgid "Description"
 msgstr ""
 
 #: observations/templates/observations/detail.html:36
-#: observations/templates/observations/index.html:46
-#: observations/templates/observations/index.html:74
+#: observations/templates/observations/index.html:60
+#: observations/templates/observations/index.html:61
+#: observations/templates/observations/index.html:89
 #: observations/templates/observations/index_old.html:63
 #: observations/templates/observations/timeseries.html:34
 msgid "Organism"
 msgstr ""
 
 #: observations/templates/observations/detail.html:38
-#: observations/templates/observations/index.html:50
-#: observations/templates/observations/index.html:75
+#: observations/templates/observations/index.html:65
+#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:90
 #: observations/templates/observations/index_old.html:64
 #: observations/templates/observations/timeseries.html:36
 msgid "Crop"
 msgstr ""
 
 #: observations/templates/observations/detail.html:40
-#: observations/templates/observations/index.html:73
+#: observations/templates/observations/index.html:88
 #: observations/templates/observations/index_old.html:62
 msgid "Date of observation"
 msgstr ""
 
 #: observations/templates/observations/detail.html:43
-#: observations/templates/observations/index.html:77
+#: observations/templates/observations/index.html:92
 #: observations/templates/observations/timeseries.html:23
 #: observations/templates/observations/timeseries.html:28
 msgid "Time series"
@@ -95,32 +97,43 @@ msgstr ""
 msgid "Current date"
 msgstr ""
 
-#: observations/templates/observations/index.html:54
-msgid "Crop categories"
+#: observations/templates/observations/index.html:41
+#: observations/templates/observations/index_old.html:49
+msgid "From"
 msgstr ""
 
-#: observations/templates/observations/index.html:59
+#: observations/templates/observations/index.html:45
+#: observations/templates/observations/index_old.html:53
+msgid "To"
+msgstr ""
+
+#: observations/templates/observations/index.html:52
 msgid "Include registrations without pest presence"
 msgstr ""
 
-#: observations/templates/observations/index.html:62
+#: observations/templates/observations/index.html:70
+#: observations/templates/observations/index.html:71
+msgid "Crop categories"
+msgstr ""
+
+#: observations/templates/observations/index.html:76
 msgid "Filter"
 msgstr ""
 
-#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:82
 msgid "No observations found for specified search criteria"
 msgstr ""
 
-#: observations/templates/observations/index.html:69
+#: observations/templates/observations/index.html:84
 msgid "Download as Excel"
 msgstr ""
 
-#: observations/templates/observations/index.html:76
+#: observations/templates/observations/index.html:91
 #: observations/templates/observations/index_old.html:65
 msgid "Heading"
 msgstr ""
 
-#: observations/templates/observations/index.html:78
+#: observations/templates/observations/index.html:93
 msgid "Details"
 msgstr ""
 
@@ -128,14 +141,6 @@ msgstr ""
 msgid "All pests"
 msgstr ""
 
-#: observations/templates/observations/index_old.html:49
-msgid "From"
-msgstr ""
-
-#: observations/templates/observations/index_old.html:53
-msgid "To"
-msgstr ""
-
 #: observations/templates/observations/index_old.html:55
 msgid "Date search"
 msgstr ""
diff --git a/observations/locale/nb/LC_MESSAGES/django.po b/observations/locale/nb/LC_MESSAGES/django.po
index 28cbdc70709129dfddc87768807694f6ca437c7a..edf02a93fac6e57e7b3575fe3df5c03a93065119 100755
--- a/observations/locale/nb/LC_MESSAGES/django.po
+++ b/observations/locale/nb/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: 2024-06-06 13:42+0200\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -30,29 +30,31 @@ msgid "Description"
 msgstr "Beskrivelse"
 
 #: observations/templates/observations/detail.html:36
-#: observations/templates/observations/index.html:46
-#: observations/templates/observations/index.html:74
+#: observations/templates/observations/index.html:60
+#: observations/templates/observations/index.html:61
+#: observations/templates/observations/index.html:89
 #: observations/templates/observations/index_old.html:63
 #: observations/templates/observations/timeseries.html:34
 msgid "Organism"
 msgstr "Organisme"
 
 #: observations/templates/observations/detail.html:38
-#: observations/templates/observations/index.html:50
-#: observations/templates/observations/index.html:75
+#: observations/templates/observations/index.html:65
+#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:90
 #: observations/templates/observations/index_old.html:64
 #: observations/templates/observations/timeseries.html:36
 msgid "Crop"
 msgstr "Kultur"
 
 #: observations/templates/observations/detail.html:40
-#: observations/templates/observations/index.html:73
+#: observations/templates/observations/index.html:88
 #: observations/templates/observations/index_old.html:62
 msgid "Date of observation"
 msgstr "Observasjonsdato"
 
 #: observations/templates/observations/detail.html:43
-#: observations/templates/observations/index.html:77
+#: observations/templates/observations/index.html:92
 #: observations/templates/observations/timeseries.html:23
 #: observations/templates/observations/timeseries.html:28
 msgid "Time series"
@@ -96,32 +98,43 @@ msgstr "Observasjoner"
 msgid "Current date"
 msgstr "Gjeldende dato"
 
-#: observations/templates/observations/index.html:54
-msgid "Crop categories"
-msgstr "Kulturkategorier"
+#: observations/templates/observations/index.html:41
+#: observations/templates/observations/index_old.html:49
+msgid "From"
+msgstr "Fra"
 
-#: observations/templates/observations/index.html:59
+#: observations/templates/observations/index.html:45
+#: observations/templates/observations/index_old.html:53
+msgid "To"
+msgstr "Til"
+
+#: observations/templates/observations/index.html:52
 msgid "Include registrations without pest presence"
 msgstr "Vis registreringer uten funn"
 
-#: observations/templates/observations/index.html:62
+#: observations/templates/observations/index.html:70
+#: observations/templates/observations/index.html:71
+msgid "Crop categories"
+msgstr "Kulturkategorier"
+
+#: observations/templates/observations/index.html:76
 msgid "Filter"
 msgstr "Gjør utvalg"
 
-#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:82
 msgid "No observations found for specified search criteria"
 msgstr "Ingen observasjoner funnet for angitte søkekriterier"
 
-#: observations/templates/observations/index.html:69
+#: observations/templates/observations/index.html:84
 msgid "Download as Excel"
 msgstr "Last ned som Excel"
 
-#: observations/templates/observations/index.html:76
+#: observations/templates/observations/index.html:91
 #: observations/templates/observations/index_old.html:65
 msgid "Heading"
 msgstr "Tittel"
 
-#: observations/templates/observations/index.html:78
+#: observations/templates/observations/index.html:93
 msgid "Details"
 msgstr "Detaljer"
 
@@ -129,14 +142,6 @@ msgstr "Detaljer"
 msgid "All pests"
 msgstr "Alle organismer"
 
-#: observations/templates/observations/index_old.html:49
-msgid "From"
-msgstr "Fra"
-
-#: observations/templates/observations/index_old.html:53
-msgid "To"
-msgstr "Til"
-
 #: observations/templates/observations/index_old.html:55
 msgid "Date search"
 msgstr "Datosøk"
diff --git a/observations/locale/vi/LC_MESSAGES/django.po b/observations/locale/vi/LC_MESSAGES/django.po
index ac8500b2f08bedcbda1a2baafe7ff60b3a1e96e7..1a57d4fcd11ae5925d307f1d009a2a618a534fbb 100644
--- a/observations/locale/vi/LC_MESSAGES/django.po
+++ b/observations/locale/vi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,29 +29,31 @@ msgid "Description"
 msgstr ""
 
 #: observations/templates/observations/detail.html:36
-#: observations/templates/observations/index.html:46
-#: observations/templates/observations/index.html:74
+#: observations/templates/observations/index.html:60
+#: observations/templates/observations/index.html:61
+#: observations/templates/observations/index.html:89
 #: observations/templates/observations/index_old.html:63
 #: observations/templates/observations/timeseries.html:34
 msgid "Organism"
 msgstr ""
 
 #: observations/templates/observations/detail.html:38
-#: observations/templates/observations/index.html:50
-#: observations/templates/observations/index.html:75
+#: observations/templates/observations/index.html:65
+#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:90
 #: observations/templates/observations/index_old.html:64
 #: observations/templates/observations/timeseries.html:36
 msgid "Crop"
 msgstr ""
 
 #: observations/templates/observations/detail.html:40
-#: observations/templates/observations/index.html:73
+#: observations/templates/observations/index.html:88
 #: observations/templates/observations/index_old.html:62
 msgid "Date of observation"
 msgstr ""
 
 #: observations/templates/observations/detail.html:43
-#: observations/templates/observations/index.html:77
+#: observations/templates/observations/index.html:92
 #: observations/templates/observations/timeseries.html:23
 #: observations/templates/observations/timeseries.html:28
 msgid "Time series"
@@ -95,32 +97,43 @@ msgstr ""
 msgid "Current date"
 msgstr ""
 
-#: observations/templates/observations/index.html:54
-msgid "Crop categories"
+#: observations/templates/observations/index.html:41
+#: observations/templates/observations/index_old.html:49
+msgid "From"
 msgstr ""
 
-#: observations/templates/observations/index.html:59
+#: observations/templates/observations/index.html:45
+#: observations/templates/observations/index_old.html:53
+msgid "To"
+msgstr ""
+
+#: observations/templates/observations/index.html:52
 msgid "Include registrations without pest presence"
 msgstr ""
 
-#: observations/templates/observations/index.html:62
+#: observations/templates/observations/index.html:70
+#: observations/templates/observations/index.html:71
+msgid "Crop categories"
+msgstr ""
+
+#: observations/templates/observations/index.html:76
 msgid "Filter"
 msgstr ""
 
-#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:82
 msgid "No observations found for specified search criteria"
 msgstr ""
 
-#: observations/templates/observations/index.html:69
+#: observations/templates/observations/index.html:84
 msgid "Download as Excel"
 msgstr ""
 
-#: observations/templates/observations/index.html:76
+#: observations/templates/observations/index.html:91
 #: observations/templates/observations/index_old.html:65
 msgid "Heading"
 msgstr ""
 
-#: observations/templates/observations/index.html:78
+#: observations/templates/observations/index.html:93
 msgid "Details"
 msgstr ""
 
@@ -128,14 +141,6 @@ msgstr ""
 msgid "All pests"
 msgstr ""
 
-#: observations/templates/observations/index_old.html:49
-msgid "From"
-msgstr ""
-
-#: observations/templates/observations/index_old.html:53
-msgid "To"
-msgstr ""
-
 #: observations/templates/observations/index_old.html:55
 msgid "Date search"
 msgstr ""
diff --git a/observations/locale/zh_Hans/LC_MESSAGES/django.po b/observations/locale/zh_Hans/LC_MESSAGES/django.po
index ac151a14fb19b4d34748734796f9058cc02e9eee..1acbd6ab9874a8564171932a9d6703c0d51a8209 100755
--- a/observations/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/observations/locale/zh_Hans/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 12:20+0200\n"
+"POT-Creation-Date: 2024-10-30 08:43+0100\n"
 "PO-Revision-Date: 2016-10-27 11:26+0200\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -28,29 +28,31 @@ msgid "Description"
 msgstr ""
 
 #: observations/templates/observations/detail.html:36
-#: observations/templates/observations/index.html:46
-#: observations/templates/observations/index.html:74
+#: observations/templates/observations/index.html:60
+#: observations/templates/observations/index.html:61
+#: observations/templates/observations/index.html:89
 #: observations/templates/observations/index_old.html:63
 #: observations/templates/observations/timeseries.html:34
 msgid "Organism"
 msgstr "生物"
 
 #: observations/templates/observations/detail.html:38
-#: observations/templates/observations/index.html:50
-#: observations/templates/observations/index.html:75
+#: observations/templates/observations/index.html:65
+#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:90
 #: observations/templates/observations/index_old.html:64
 #: observations/templates/observations/timeseries.html:36
 msgid "Crop"
 msgstr "作物"
 
 #: observations/templates/observations/detail.html:40
-#: observations/templates/observations/index.html:73
+#: observations/templates/observations/index.html:88
 #: observations/templates/observations/index_old.html:62
 msgid "Date of observation"
 msgstr "观测时间"
 
 #: observations/templates/observations/detail.html:43
-#: observations/templates/observations/index.html:77
+#: observations/templates/observations/index.html:92
 #: observations/templates/observations/timeseries.html:23
 #: observations/templates/observations/timeseries.html:28
 msgid "Time series"
@@ -96,32 +98,43 @@ msgstr "观测"
 msgid "Current date"
 msgstr ""
 
-#: observations/templates/observations/index.html:54
-msgid "Crop categories"
+#: observations/templates/observations/index.html:41
+#: observations/templates/observations/index_old.html:49
+msgid "From"
 msgstr ""
 
-#: observations/templates/observations/index.html:59
+#: observations/templates/observations/index.html:45
+#: observations/templates/observations/index_old.html:53
+msgid "To"
+msgstr ""
+
+#: observations/templates/observations/index.html:52
 msgid "Include registrations without pest presence"
 msgstr ""
 
-#: observations/templates/observations/index.html:62
+#: observations/templates/observations/index.html:70
+#: observations/templates/observations/index.html:71
+msgid "Crop categories"
+msgstr ""
+
+#: observations/templates/observations/index.html:76
 msgid "Filter"
 msgstr ""
 
-#: observations/templates/observations/index.html:66
+#: observations/templates/observations/index.html:82
 msgid "No observations found for specified search criteria"
 msgstr ""
 
-#: observations/templates/observations/index.html:69
+#: observations/templates/observations/index.html:84
 msgid "Download as Excel"
 msgstr ""
 
-#: observations/templates/observations/index.html:76
+#: observations/templates/observations/index.html:91
 #: observations/templates/observations/index_old.html:65
 msgid "Heading"
 msgstr "标题"
 
-#: observations/templates/observations/index.html:78
+#: observations/templates/observations/index.html:93
 #, fuzzy
 #| msgid "View details"
 msgid "Details"
@@ -131,14 +144,6 @@ msgstr "看细节"
 msgid "All pests"
 msgstr "所有病虫害"
 
-#: observations/templates/observations/index_old.html:49
-msgid "From"
-msgstr ""
-
-#: observations/templates/observations/index_old.html:53
-msgid "To"
-msgstr ""
-
 #: observations/templates/observations/index_old.html:55
 msgid "Date search"
 msgstr ""