diff --git a/VIPSWeb/locale/bg/LC_MESSAGES/djangojs.po b/VIPSWeb/locale/bg/LC_MESSAGES/djangojs.po
index fb9498857c1664445b400e54ee9a1c1a8c4641f2..87afbb33e55186f41c3fdaeede83b2d4578e58db 100755
--- a/VIPSWeb/locale/bg/LC_MESSAGES/djangojs.po
+++ b/VIPSWeb/locale/bg/LC_MESSAGES/djangojs.po
@@ -19,7 +19,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 14:01+0200\n"
+"POT-Creation-Date: 2024-10-30 15:38+0100\n"
 "PO-Revision-Date: 2014-05-14 09:33+0200\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -100,8 +100,8 @@ msgstr ""
 msgid "Older"
 msgstr ""
 
-#: VIPSWeb/static/js/util.js:241 VIPSWeb/static/js/util.js:270
-#: VIPSWeb/static/js/util.js:422
+#: VIPSWeb/static/js/util.js:253 VIPSWeb/static/js/util.js:282
+#: VIPSWeb/static/js/util.js:434
 msgid "Unnamed"
 msgstr ""
 
@@ -160,59 +160,59 @@ msgstr ""
 msgid "Select station"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Sunday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Monday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Tuesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Wednesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Thursday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Friday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Saturday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Mon"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Tue"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Wed"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Thu"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Fri"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sat"
 msgstr ""
 
@@ -244,119 +244,119 @@ msgstr ""
 msgid "Sa"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "January"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "February"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "March"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "April"
 msgstr ""
 
 #: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:17
-#: VIPSWeb/templates/settings.js:48 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:50 VIPSWeb/templates/settings.js:51
 msgid "May"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "June"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "July"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "August"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "September"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "October"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "November"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "December"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jan"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Feb"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Mar"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Apr"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jul"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Aug"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Sep"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Oct"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Nov"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Dec"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:52
+#: VIPSWeb/templates/settings.js:54
 msgid "Print chart"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:53
+#: VIPSWeb/templates/settings.js:55
 msgid "Download PNG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:54
+#: VIPSWeb/templates/settings.js:56
 msgid "Download JPEG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:55
+#: VIPSWeb/templates/settings.js:57
 msgid "Download PDF document"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:56
+#: VIPSWeb/templates/settings.js:58
 msgid "Download SVG vector image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:57
+#: VIPSWeb/templates/settings.js:59
 msgid "Chart context menu"
 msgstr ""
diff --git a/VIPSWeb/locale/bs/LC_MESSAGES/djangojs.po b/VIPSWeb/locale/bs/LC_MESSAGES/djangojs.po
index 575106b4a66d11a7076585b79243fd84ddedaa1f..cad749af1cb8df7772110b84aeef2485213fd98b 100755
--- a/VIPSWeb/locale/bs/LC_MESSAGES/djangojs.po
+++ b/VIPSWeb/locale/bs/LC_MESSAGES/djangojs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 14:01+0200\n"
+"POT-Creation-Date: 2024-10-30 15:38+0100\n"
 "PO-Revision-Date: 2015-02-13 11:26+0100\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -89,8 +89,8 @@ msgstr ""
 msgid "Older"
 msgstr ""
 
-#: VIPSWeb/static/js/util.js:241 VIPSWeb/static/js/util.js:270
-#: VIPSWeb/static/js/util.js:422
+#: VIPSWeb/static/js/util.js:253 VIPSWeb/static/js/util.js:282
+#: VIPSWeb/static/js/util.js:434
 msgid "Unnamed"
 msgstr "Neimenovan"
 
@@ -151,59 +151,59 @@ msgstr ""
 msgid "Select station"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Sunday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Monday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Tuesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Wednesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Thursday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Friday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Saturday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Mon"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Tue"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Wed"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Thu"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Fri"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sat"
 msgstr ""
 
@@ -235,119 +235,119 @@ msgstr ""
 msgid "Sa"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "January"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "February"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "March"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "April"
 msgstr ""
 
 #: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:17
-#: VIPSWeb/templates/settings.js:48 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:50 VIPSWeb/templates/settings.js:51
 msgid "May"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "June"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "July"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "August"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "September"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "October"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "November"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "December"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jan"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Feb"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Mar"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Apr"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jul"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Aug"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Sep"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Oct"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Nov"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Dec"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:52
+#: VIPSWeb/templates/settings.js:54
 msgid "Print chart"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:53
+#: VIPSWeb/templates/settings.js:55
 msgid "Download PNG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:54
+#: VIPSWeb/templates/settings.js:56
 msgid "Download JPEG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:55
+#: VIPSWeb/templates/settings.js:57
 msgid "Download PDF document"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:56
+#: VIPSWeb/templates/settings.js:58
 msgid "Download SVG vector image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:57
+#: VIPSWeb/templates/settings.js:59
 msgid "Chart context menu"
 msgstr ""
diff --git a/VIPSWeb/locale/de/LC_MESSAGES/djangojs.po b/VIPSWeb/locale/de/LC_MESSAGES/djangojs.po
index 1733c8643625e7338cce14c4c805b6c71d473339..1893ac3138c525ba3e5d6a1bc2a75056cdfc350b 100755
--- a/VIPSWeb/locale/de/LC_MESSAGES/djangojs.po
+++ b/VIPSWeb/locale/de/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 14:01+0200\n"
+"POT-Creation-Date: 2024-10-30 15:38+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"
@@ -86,8 +86,8 @@ msgstr ""
 msgid "Older"
 msgstr ""
 
-#: VIPSWeb/static/js/util.js:241 VIPSWeb/static/js/util.js:270
-#: VIPSWeb/static/js/util.js:422
+#: VIPSWeb/static/js/util.js:253 VIPSWeb/static/js/util.js:282
+#: VIPSWeb/static/js/util.js:434
 msgid "Unnamed"
 msgstr ""
 
@@ -146,59 +146,59 @@ msgstr ""
 msgid "Select station"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Sunday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Monday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Tuesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Wednesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Thursday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Friday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Saturday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Mon"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Tue"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Wed"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Thu"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Fri"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sat"
 msgstr ""
 
@@ -230,119 +230,119 @@ msgstr ""
 msgid "Sa"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "January"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "February"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "March"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "April"
 msgstr ""
 
 #: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:17
-#: VIPSWeb/templates/settings.js:48 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:50 VIPSWeb/templates/settings.js:51
 msgid "May"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "June"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "July"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "August"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "September"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "October"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "November"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "December"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jan"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Feb"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Mar"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Apr"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jul"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Aug"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Sep"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Oct"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Nov"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Dec"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:52
+#: VIPSWeb/templates/settings.js:54
 msgid "Print chart"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:53
+#: VIPSWeb/templates/settings.js:55
 msgid "Download PNG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:54
+#: VIPSWeb/templates/settings.js:56
 msgid "Download JPEG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:55
+#: VIPSWeb/templates/settings.js:57
 msgid "Download PDF document"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:56
+#: VIPSWeb/templates/settings.js:58
 msgid "Download SVG vector image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:57
+#: VIPSWeb/templates/settings.js:59
 msgid "Chart context menu"
 msgstr ""
diff --git a/VIPSWeb/locale/fi/LC_MESSAGES/djangojs.po b/VIPSWeb/locale/fi/LC_MESSAGES/djangojs.po
index 1733c8643625e7338cce14c4c805b6c71d473339..1893ac3138c525ba3e5d6a1bc2a75056cdfc350b 100755
--- a/VIPSWeb/locale/fi/LC_MESSAGES/djangojs.po
+++ b/VIPSWeb/locale/fi/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 14:01+0200\n"
+"POT-Creation-Date: 2024-10-30 15:38+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"
@@ -86,8 +86,8 @@ msgstr ""
 msgid "Older"
 msgstr ""
 
-#: VIPSWeb/static/js/util.js:241 VIPSWeb/static/js/util.js:270
-#: VIPSWeb/static/js/util.js:422
+#: VIPSWeb/static/js/util.js:253 VIPSWeb/static/js/util.js:282
+#: VIPSWeb/static/js/util.js:434
 msgid "Unnamed"
 msgstr ""
 
@@ -146,59 +146,59 @@ msgstr ""
 msgid "Select station"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Sunday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Monday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Tuesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Wednesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Thursday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Friday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Saturday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Mon"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Tue"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Wed"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Thu"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Fri"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sat"
 msgstr ""
 
@@ -230,119 +230,119 @@ msgstr ""
 msgid "Sa"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "January"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "February"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "March"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "April"
 msgstr ""
 
 #: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:17
-#: VIPSWeb/templates/settings.js:48 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:50 VIPSWeb/templates/settings.js:51
 msgid "May"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "June"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "July"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "August"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "September"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "October"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "November"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "December"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jan"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Feb"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Mar"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Apr"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jul"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Aug"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Sep"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Oct"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Nov"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Dec"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:52
+#: VIPSWeb/templates/settings.js:54
 msgid "Print chart"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:53
+#: VIPSWeb/templates/settings.js:55
 msgid "Download PNG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:54
+#: VIPSWeb/templates/settings.js:56
 msgid "Download JPEG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:55
+#: VIPSWeb/templates/settings.js:57
 msgid "Download PDF document"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:56
+#: VIPSWeb/templates/settings.js:58
 msgid "Download SVG vector image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:57
+#: VIPSWeb/templates/settings.js:59
 msgid "Chart context menu"
 msgstr ""
diff --git a/VIPSWeb/locale/nb/LC_MESSAGES/djangojs.po b/VIPSWeb/locale/nb/LC_MESSAGES/djangojs.po
index d38b7b9e9922260704af96d74118816fa940d1b2..2a4da49a055837fb7ff27f73d644bb8a1a7c0043 100755
--- a/VIPSWeb/locale/nb/LC_MESSAGES/djangojs.po
+++ b/VIPSWeb/locale/nb/LC_MESSAGES/djangojs.po
@@ -19,7 +19,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VIPSWeb\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 14:01+0200\n"
+"POT-Creation-Date: 2024-10-30 15:38+0100\n"
 "PO-Revision-Date: 2024-04-03 14:04+0200\n"
 "Last-Translator: Tor-Einar Skog <tor-einar.skog@nibio.no>\n"
 "Language-Team: \n"
@@ -98,8 +98,8 @@ msgstr "Dager"
 msgid "Older"
 msgstr "Eldre"
 
-#: VIPSWeb/static/js/util.js:241 VIPSWeb/static/js/util.js:270
-#: VIPSWeb/static/js/util.js:422
+#: VIPSWeb/static/js/util.js:253 VIPSWeb/static/js/util.js:282
+#: VIPSWeb/static/js/util.js:434
 msgid "Unnamed"
 msgstr "Uten navn"
 
@@ -158,66 +158,66 @@ msgstr "For mange skilletegn (komma)"
 msgid "Select station"
 msgstr "Velg stasjon"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Sunday"
 msgstr "Søndag"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Monday"
 msgstr "Mandag"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Tuesday"
 msgstr "Tirsdag"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Wednesday"
 msgstr "Onsdag"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Thursday"
 msgstr "Torsdag"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Friday"
 msgstr "Fredag"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Saturday"
 msgstr "Lørdag"
 
 # Abbreviation for Sunday
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sun"
 msgstr "Søn"
 
 # Abbreviation for Monday
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Mon"
 msgstr "Man"
 
 # Abbreviation for Tuesday
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Tue"
 msgstr "Tir"
 
 # Abbreviation for Wednesday
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Wed"
 msgstr "Ons"
 
 # Abbreviation for Thursday
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Thu"
 msgstr "Tor"
 
 # Abbreviation for Friday
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Fri"
 msgstr "Fredag"
 
 # Abbreviation for Saturday
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sat"
 msgstr "Lør"
 
@@ -256,130 +256,130 @@ msgstr "Fr"
 msgid "Sa"
 msgstr "Lø"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "January"
 msgstr "Januar"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "February"
 msgstr "Februar"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "March"
 msgstr "Mars"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "April"
 msgstr "April"
 
 #: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:17
-#: VIPSWeb/templates/settings.js:48 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:50 VIPSWeb/templates/settings.js:51
 msgid "May"
 msgstr "Mai"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "June"
 msgstr "Juni"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "July"
 msgstr "Juli"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "August"
 msgstr "August"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "September"
 msgstr "September"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "October"
 msgstr "Oktober"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "November"
 msgstr "November"
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "December"
 msgstr "Desember"
 
 # Abbreviation for January
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jan"
 msgstr "Jan"
 
 # Abbreviation for February
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Feb"
 msgstr "Feb"
 
 # Abbreviation for March
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Mar"
 msgstr "Mar"
 
 # Abbreviation for April
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Apr"
 msgstr "Apr"
 
 # Abbreviation for June
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jun"
 msgstr "Jun"
 
 # Abbreviation for July
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jul"
 msgstr "Jul"
 
 # Abbreviation for August
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Aug"
 msgstr "Aug"
 
 # Abbreviation for September
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Sep"
 msgstr "Sep"
 
 # Abbreviation for October
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Oct"
 msgstr "Okt"
 
 # Abbreviation for November
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Nov"
 msgstr "Nov"
 
 # Abbreviation for December
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Dec"
 msgstr "Des"
 
-#: VIPSWeb/templates/settings.js:52
+#: VIPSWeb/templates/settings.js:54
 msgid "Print chart"
 msgstr "Skriv ut graf"
 
-#: VIPSWeb/templates/settings.js:53
+#: VIPSWeb/templates/settings.js:55
 msgid "Download PNG image"
 msgstr "Last ned som PNG"
 
-#: VIPSWeb/templates/settings.js:54
+#: VIPSWeb/templates/settings.js:56
 msgid "Download JPEG image"
 msgstr "Last ned som JPEG"
 
-#: VIPSWeb/templates/settings.js:55
+#: VIPSWeb/templates/settings.js:57
 msgid "Download PDF document"
 msgstr "Last ned som PDF"
 
-#: VIPSWeb/templates/settings.js:56
+#: VIPSWeb/templates/settings.js:58
 msgid "Download SVG vector image"
 msgstr "Last ned som SVG"
 
-#: VIPSWeb/templates/settings.js:57
+#: VIPSWeb/templates/settings.js:59
 msgid "Chart context menu"
 msgstr "Grafmeny"
diff --git a/VIPSWeb/locale/vi/LC_MESSAGES/djangojs.po b/VIPSWeb/locale/vi/LC_MESSAGES/djangojs.po
index f625d86e62fb34a9de4f8ca50d89a61fbb9f21e9..a41eed97e768ba7370a0dd48888def0cdb4eec00 100755
--- a/VIPSWeb/locale/vi/LC_MESSAGES/djangojs.po
+++ b/VIPSWeb/locale/vi/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 14:01+0200\n"
+"POT-Creation-Date: 2024-10-30 15:38+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"
@@ -92,8 +92,8 @@ msgstr ""
 msgid "Older"
 msgstr ""
 
-#: VIPSWeb/static/js/util.js:241 VIPSWeb/static/js/util.js:270
-#: VIPSWeb/static/js/util.js:422
+#: VIPSWeb/static/js/util.js:253 VIPSWeb/static/js/util.js:282
+#: VIPSWeb/static/js/util.js:434
 msgid "Unnamed"
 msgstr "Vô danh"
 
@@ -152,59 +152,59 @@ msgstr "Quá nhiều dấu phẩy phân cách"
 msgid "Select station"
 msgstr "Chọn ga"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Sunday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Monday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Tuesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Wednesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Thursday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Friday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Saturday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Mon"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Tue"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Wed"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Thu"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Fri"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sat"
 msgstr ""
 
@@ -236,119 +236,119 @@ msgstr ""
 msgid "Sa"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "January"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "February"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "March"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "April"
 msgstr ""
 
 #: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:17
-#: VIPSWeb/templates/settings.js:48 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:50 VIPSWeb/templates/settings.js:51
 msgid "May"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "June"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "July"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "August"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "September"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "October"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "November"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "December"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jan"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Feb"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Mar"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Apr"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jul"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Aug"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Sep"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Oct"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Nov"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Dec"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:52
+#: VIPSWeb/templates/settings.js:54
 msgid "Print chart"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:53
+#: VIPSWeb/templates/settings.js:55
 msgid "Download PNG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:54
+#: VIPSWeb/templates/settings.js:56
 msgid "Download JPEG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:55
+#: VIPSWeb/templates/settings.js:57
 msgid "Download PDF document"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:56
+#: VIPSWeb/templates/settings.js:58
 msgid "Download SVG vector image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:57
+#: VIPSWeb/templates/settings.js:59
 msgid "Chart context menu"
 msgstr ""
diff --git a/VIPSWeb/locale/zh_Hans/LC_MESSAGES/djangojs.po b/VIPSWeb/locale/zh_Hans/LC_MESSAGES/djangojs.po
index 8527d3708d71a50db086c518131632ce7cc2877d..44a2f6ec025e7720e0c2b103f401608f7a610998 100755
--- a/VIPSWeb/locale/zh_Hans/LC_MESSAGES/djangojs.po
+++ b/VIPSWeb/locale/zh_Hans/LC_MESSAGES/djangojs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-03 14:01+0200\n"
+"POT-Creation-Date: 2024-10-30 15:38+0100\n"
 "PO-Revision-Date: 2016-11-03 15:00+0100\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -86,8 +86,8 @@ msgstr ""
 msgid "Older"
 msgstr ""
 
-#: VIPSWeb/static/js/util.js:241 VIPSWeb/static/js/util.js:270
-#: VIPSWeb/static/js/util.js:422
+#: VIPSWeb/static/js/util.js:253 VIPSWeb/static/js/util.js:282
+#: VIPSWeb/static/js/util.js:434
 msgid "Unnamed"
 msgstr "未命名的"
 
@@ -146,59 +146,59 @@ msgstr "太多分割逗号"
 msgid "Select station"
 msgstr "选择站点"
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Sunday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Monday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Tuesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Wednesday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Thursday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Friday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:50
+#: VIPSWeb/templates/settings.js:13 VIPSWeb/templates/settings.js:52
 msgid "Saturday"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Mon"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Tue"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Wed"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Thu"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Fri"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:51
+#: VIPSWeb/templates/settings.js:14 VIPSWeb/templates/settings.js:53
 msgid "Sat"
 msgstr ""
 
@@ -230,119 +230,119 @@ msgstr ""
 msgid "Sa"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "January"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "February"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "March"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "April"
 msgstr ""
 
 #: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:17
-#: VIPSWeb/templates/settings.js:48 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:50 VIPSWeb/templates/settings.js:51
 msgid "May"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "June"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "July"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "August"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "September"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "October"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "November"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:49
+#: VIPSWeb/templates/settings.js:16 VIPSWeb/templates/settings.js:51
 msgid "December"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jan"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Feb"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Mar"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Apr"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jun"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Jul"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Aug"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Sep"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Oct"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Nov"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:48
+#: VIPSWeb/templates/settings.js:17 VIPSWeb/templates/settings.js:50
 msgid "Dec"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:52
+#: VIPSWeb/templates/settings.js:54
 msgid "Print chart"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:53
+#: VIPSWeb/templates/settings.js:55
 msgid "Download PNG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:54
+#: VIPSWeb/templates/settings.js:56
 msgid "Download JPEG image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:55
+#: VIPSWeb/templates/settings.js:57
 msgid "Download PDF document"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:56
+#: VIPSWeb/templates/settings.js:58
 msgid "Download SVG vector image"
 msgstr ""
 
-#: VIPSWeb/templates/settings.js:57
+#: VIPSWeb/templates/settings.js:59
 msgid "Chart context menu"
 msgstr ""
diff --git a/VIPSWeb/urls.py b/VIPSWeb/urls.py
index 756b6eddd05fcf18d15c1582b52d99701dcc821e..c81a53753c78913103994dbb620092126a26c7e4 100755
--- a/VIPSWeb/urls.py
+++ b/VIPSWeb/urls.py
@@ -34,7 +34,7 @@ admin.autodiscover()
 # Enabling translation in JavaScript files
 # See https://docs.djangoproject.com/en/1.5/topics/i18n/translation/#internationalization-in-javascript-code
 js_info_dict = {
-    'packages': ['forecasts','vips_messages','VIPSWeb','roughage', 'spatial'],
+    'packages': ['forecasts','vips_messages','VIPSWeb','roughage', 'spatial','cydiapomonella'],
     'domain': 'djangojs',
 }
 
diff --git a/cydiapomonella/locale/bg/LC_MESSAGES/djangojs.po b/cydiapomonella/locale/bg/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..e8f72bd8c31d67028cc18e99d79fd6097f1813be
--- /dev/null
+++ b/cydiapomonella/locale/bg/LC_MESSAGES/djangojs.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-10-31 10:23+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: cydiapomonella/static/js/cydiapomonella.js:222
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "calculated for"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "weatherstation"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "selected coordinates"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "for the period starting with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "and ending with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:227
+msgid "days"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "is"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "day degrees"
+msgstr ""
diff --git a/cydiapomonella/locale/bs/LC_MESSAGES/djangojs.po b/cydiapomonella/locale/bs/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..bb2f9a711287c0b2e55b654a6bbdf52cf1af3be8
--- /dev/null
+++ b/cydiapomonella/locale/bs/LC_MESSAGES/djangojs.po
@@ -0,0 +1,57 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-10-31 10:23+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"
+"Language: \n"
+"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"
+
+#: cydiapomonella/static/js/cydiapomonella.js:222
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "calculated for"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "weatherstation"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "selected coordinates"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "for the period starting with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "and ending with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:227
+msgid "days"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "is"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "day degrees"
+msgstr ""
diff --git a/cydiapomonella/locale/de/LC_MESSAGES/djangojs.po b/cydiapomonella/locale/de/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..e8f72bd8c31d67028cc18e99d79fd6097f1813be
--- /dev/null
+++ b/cydiapomonella/locale/de/LC_MESSAGES/djangojs.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-10-31 10:23+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: cydiapomonella/static/js/cydiapomonella.js:222
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "calculated for"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "weatherstation"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "selected coordinates"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "for the period starting with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "and ending with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:227
+msgid "days"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "is"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "day degrees"
+msgstr ""
diff --git a/cydiapomonella/locale/fi/LC_MESSAGES/djangojs.po b/cydiapomonella/locale/fi/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..e8f72bd8c31d67028cc18e99d79fd6097f1813be
--- /dev/null
+++ b/cydiapomonella/locale/fi/LC_MESSAGES/djangojs.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-10-31 10:23+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: cydiapomonella/static/js/cydiapomonella.js:222
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "calculated for"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "weatherstation"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "selected coordinates"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "for the period starting with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "and ending with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:227
+msgid "days"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "is"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "day degrees"
+msgstr ""
diff --git a/cydiapomonella/locale/nb/LC_MESSAGES/djangojs.po b/cydiapomonella/locale/nb/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..318bacced37cf11f384a3a77ba7f94218c0c4b35
--- /dev/null
+++ b/cydiapomonella/locale/nb/LC_MESSAGES/djangojs.po
@@ -0,0 +1,60 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-10-31 10:23+0100\n"
+"PO-Revision-Date: 2024-10-31 10:23+0100\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 3.4.2\n"
+
+#: cydiapomonella/static/js/cydiapomonella.js:222
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "Heat sum, with a base temperature of"
+msgstr "Varmesum, med basistemperatur"
+
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "calculated for"
+msgstr "beregnet for"
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "weatherstation"
+msgstr "værstasjon"
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "selected coordinates"
+msgstr "valgt punkt"
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "for the period starting with"
+msgstr "for perioden fra og med"
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "and ending with"
+msgstr "til og med"
+
+#: cydiapomonella/static/js/cydiapomonella.js:227
+msgid "days"
+msgstr "dager"
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "is"
+msgstr "er"
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "day degrees"
+msgstr "graddager"
+
+#~ msgid "Field is required"
+#~ msgstr "DETTE ER EN TEST"
diff --git a/cydiapomonella/locale/vi/LC_MESSAGES/djangojs.po b/cydiapomonella/locale/vi/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..2992c7fe8b0c0c8f340bc0f99dfcab1168d5886e
--- /dev/null
+++ b/cydiapomonella/locale/vi/LC_MESSAGES/djangojs.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-10-31 10:23+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: cydiapomonella/static/js/cydiapomonella.js:222
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "calculated for"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "weatherstation"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "selected coordinates"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "for the period starting with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "and ending with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:227
+msgid "days"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "is"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "day degrees"
+msgstr ""
diff --git a/cydiapomonella/locale/zh_Hans/LC_MESSAGES/djangojs.po b/cydiapomonella/locale/zh_Hans/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..2992c7fe8b0c0c8f340bc0f99dfcab1168d5886e
--- /dev/null
+++ b/cydiapomonella/locale/zh_Hans/LC_MESSAGES/djangojs.po
@@ -0,0 +1,56 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-10-31 10:23+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: cydiapomonella/static/js/cydiapomonella.js:222
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "Heat sum, with a base temperature of"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:224
+msgid "calculated for"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "weatherstation"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:225
+msgid "selected coordinates"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "for the period starting with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:226
+msgid "and ending with"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:227
+msgid "days"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "is"
+msgstr ""
+
+#: cydiapomonella/static/js/cydiapomonella.js:228
+msgid "day degrees"
+msgstr ""
diff --git a/cydiapomonella/static/js/cydiapomonella.js b/cydiapomonella/static/js/cydiapomonella.js
index 86440fcb2f87f09d6d1b17a593bcaae8092c148e..85cabdda4a0a9b29894a76f2319edd8e850c329e 100644
--- a/cydiapomonella/static/js/cydiapomonella.js
+++ b/cydiapomonella/static/js/cydiapomonella.js
@@ -1,3 +1,25 @@
+/**
+ * Functionality for the running of the Cydia Pomonella model. 
+ * 
+ * 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 />.
+ * 
+ * Created 2024-10-30
+ * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
+ */
+
+
+
+
 class CydiaPomonella 
 {
 
@@ -6,6 +28,9 @@ class CydiaPomonella
     TIMEZONE = "Europe/Oslo";
     DATE_FORMAT = "YYYY-MM-DD";
     HEATSUM_BASE_TEMP = 10.0;
+    WEATHER_DATASOURCE_TYPE_COORDINATES = "coordinates";
+    WEATHER_DATASOURCE_TYPE_WEATHERSTATION = "weatherstation";
+    
 
     appleWeatherStations = [
         { "id": 11, "name": "Apelsvoll" },
@@ -31,6 +56,8 @@ class CydiaPomonella
         { "id": 61, "name": "Åsbakken" }
     ];
 
+    appleWeatherStationIds = this.appleWeatherStations.map(ws=>ws.id);
+
     renderWeatherstations = function () {
         let wsSelect = document.getElementById("weatherStationId");
         this.appleWeatherStations.forEach((ws) => {
@@ -38,27 +65,66 @@ class CydiaPomonella
         });
     }
 
-    async runModel() {
+    getSelectedWeatherstation()
+    {
         let wsSelect = document.getElementById("weatherStationId");
-        let selectedWeatherStationId = wsSelect.options[wsSelect.selectedIndex].value;
-        if(selectedWeatherStationId == "-1")
+        return wsSelect.options[wsSelect.selectedIndex].value != "-1" ? wsSelect.options[wsSelect.selectedIndex].value : undefined;
+    }
+
+    getSelectedCoordinate()
+    {
+        let longitude = parseFloat(document.getElementById("longitude").value);
+        let latitude = parseFloat(document.getElementById("latitude").value);
+        return (Number.isNaN(longitude) || Number.isNaN(latitude) ? undefined : [longitude, latitude]);
+    }
+
+    getSelectedWeatherdataSourceType()
+    {
+        return document.getElementById("coordinates").checked ? this.WEATHER_DATASOURCE_TYPE_COORDINATES : document.getElementById("weatherstation").checked ? this.WEATHER_DATASOURCE_TYPE_WEATHERSTATION : undefined;
+    }
+
+    async runModel() {
+        let selectedWeatherStationId = this.getSelectedWeatherstation();
+        let selectedCoordinate = this.getSelectedCoordinate();
+        if(selectedWeatherStationId == undefined && selectedCoordinate == undefined)
         {
             return;
         }
+
         let startDateHourly = this.getStartDateHourly();
         let endDateHourly = this.getEndDateHourly();
         try
         {
-            // Get the hourly data for the past X days
-            const hourlyDataResponse = await fetch(
-                this.weatherStationDataURL + "?weatherStationId=" + selectedWeatherStationId 
-                + "&elementMeasurementTypes[]=RR&elementMeasurementTypes[]=TM"
-                + "&timeZone="  + this.TIMEZONE 
-                + "&startDate=" + startDateHourly.format(this.DATE_FORMAT) + "&startTime=0" 
-                + "&endDate=" + endDateHourly.format(this.DATE_FORMAT) + "&endTime=12"  
-                + "&logIntervalId=1"
-            );
-            if(! hourlyDataResponse.ok){
+            let hourlyDataResponse = undefined;
+            if(this.getSelectedWeatherdataSourceType() == this.WEATHER_DATASOURCE_TYPE_WEATHERSTATION && selectedWeatherStationId != undefined)
+            {
+                // Get the hourly data for the past X days
+                hourlyDataResponse = await fetch(
+                    this.weatherStationDataURL + "?weatherStationId=" + selectedWeatherStationId 
+                    + "&elementMeasurementTypes[]=RR&elementMeasurementTypes[]=TM"
+                    + "&timeZone="  + this.TIMEZONE 
+                    + "&startDate=" + startDateHourly.format(this.DATE_FORMAT) + "&startTime=0" 
+                    + "&endDate=" + endDateHourly.format(this.DATE_FORMAT) + "&endTime=12"  
+                    + "&logIntervalId=1"
+                );
+            }
+            else if(this.getSelectedWeatherdataSourceType() == this.WEATHER_DATASOURCE_TYPE_COORDINATES && selectedCoordinate != undefined)
+            {
+                hourlyDataResponse = await fetch(
+                    this.gridDataURL + "?longitude=" + selectedCoordinate[0] + "&latitude=" + selectedCoordinate[1]
+                    + "&elementMeasurementTypes[]=RR&elementMeasurementTypes[]=TM"
+                    + "&timeZone="  + this.TIMEZONE 
+                    + "&startDate=" + startDateHourly.format(this.DATE_FORMAT) + "&startTime=0" 
+                    + "&endDate=" + endDateHourly.format(this.DATE_FORMAT) + "&endTime=12"  
+                    + "&logIntervalId=1"
+                );
+            }
+            else
+            {
+                console.error("Location not set. Aborting.")
+                return;
+            }
+            if(! hourlyDataResponse || ! hourlyDataResponse.ok){
                 throw new Error("Response status: " + hourlyDataResponse.status);
             }
 
@@ -81,9 +147,9 @@ class CydiaPomonella
     async runHeatSumCalculations()
     {
         document.getElementById("heatSumContainer").style.display="block";
-        let wsSelect = document.getElementById("weatherStationId");
-        let selectedWeatherStationId = wsSelect.options[wsSelect.selectedIndex].value;
-        if(selectedWeatherStationId == "-1")
+        let selectedWeatherStationId = this.getSelectedWeatherstation();
+        let selectedCoordinate = this.getSelectedCoordinate();
+        if(selectedWeatherStationId == undefined && selectedCoordinate == undefined)
         {
             return;
         }
@@ -91,14 +157,34 @@ class CydiaPomonella
         const heatSumStartDate = this.setToTZMidnight(moment(document.getElementById("heatSumStartDate").value));
         const heatSumEndDate = this.setToTZMidnight(moment().tz(this.TIMEZONE).subtract(1,"days"));
         
-        const heatSumDataResponse = await fetch(
-            this.weatherStationDataURL + "?weatherStationId=" + selectedWeatherStationId 
-            + "&elementMeasurementTypes[]=TM"
-            + "&timeZone="  + this.TIMEZONE 
-            + "&startDate=" + heatSumStartDate.format(this.DATE_FORMAT) + "&startTime=0" 
-            + "&endDate=" + heatSumEndDate.format(this.DATE_FORMAT) + "&endTime=23"  
-            + "&logIntervalId=2"
-        );
+        let heatSumDataResponse = undefined;
+        if(this.getSelectedWeatherdataSourceType() == this.WEATHER_DATASOURCE_TYPE_WEATHERSTATION && selectedWeatherStationId != undefined)
+        {
+            heatSumDataResponse = await fetch(
+                this.weatherStationDataURL + "?weatherStationId=" + selectedWeatherStationId 
+                + "&elementMeasurementTypes[]=TM"
+                + "&timeZone="  + this.TIMEZONE 
+                + "&startDate=" + heatSumStartDate.format(this.DATE_FORMAT) + "&startTime=0" 
+                + "&endDate=" + heatSumEndDate.format(this.DATE_FORMAT) + "&endTime=23"  
+                + "&logIntervalId=2"
+            );
+        }
+        else if(this.getSelectedWeatherdataSourceType() == this.WEATHER_DATASOURCE_TYPE_COORDINATES && selectedCoordinate != undefined)
+        {
+            heatSumDataResponse = await fetch(
+                this.gridDataURL + "?longitude=" + selectedCoordinate[0] + "&latitude=" + selectedCoordinate[1]
+                + "&elementMeasurementTypes[]=TM"
+                + "&timeZone="  + this.TIMEZONE 
+                + "&startDate=" + heatSumStartDate.format(this.DATE_FORMAT) + "&startTime=0" 
+                + "&endDate=" + heatSumEndDate.format(this.DATE_FORMAT) + "&endTime=23"  
+                + "&logIntervalId=2"
+            );
+        }
+        else
+        {
+            console.error("Location not set. Aborting.")
+            return;
+        }
 
         if(! heatSumDataResponse.ok){
             throw new Error("Response status: " + heatSumDataResponse.status);
@@ -106,7 +192,7 @@ class CydiaPomonella
 
         const heatSumData = await heatSumDataResponse.json();
 
-        this.renderHeatSumResult(selectedWeatherStationId, this.calculateHeatSum(heatSumData), heatSumData.length, heatSumStartDate, heatSumEndDate);
+        this.renderHeatSumResult(this.calculateHeatSum(heatSumData), heatSumData.length, heatSumStartDate, heatSumEndDate);
     }
 
     calculateHeatSum(heatSumData)
@@ -118,19 +204,29 @@ class CydiaPomonella
         return heatSum;
     }
 
-    renderHeatSumResult(selectedWeatherStationId, heatSum, numberOfDays, heatSumStartDate, heatSumEndDate)
+    renderHeatSumResult(heatSum, numberOfDays, heatSumStartDate, heatSumEndDate)
     {
-        document.getElementById("heatSumBaseTemp").innerHTML=this.HEATSUM_BASE_TEMP;
-        this.appleWeatherStations.forEach((ws)=>{
-            if(ws.id == parseInt(selectedWeatherStationId))
-            {
-                document.getElementById("selectedWeatherStationName").innerHTML = ws.name;
-            }
-        });
-        document.getElementById("heatSumStartDateDisplay").innerHTML = heatSumStartDate.format(this.DATE_FORMAT);
-        document.getElementById("heatSumEndDateDisplay").innerHTML = heatSumEndDate.format(this.DATE_FORMAT);
-        document.getElementById("numberOfDays").innerHTML = numberOfDays;
-        document.getElementById("heatSum").innerHTML = heatSum.toFixed(1);
+        let weatherStationName = undefined;
+        if(this.getSelectedWeatherdataSourceType() == this.WEATHER_DATASOURCE_TYPE_WEATHERSTATION)
+        {
+            const selectedWeatherstationId = parseInt(this.getSelectedWeatherstation());
+            console.info(selectedWeatherstationId);
+            this.appleWeatherStations.forEach((ws)=>{
+                if(ws.id == selectedWeatherstationId)
+                {
+                    console.info("Found " + ws.name);
+                    weatherStationName =  ws.name;
+                }
+            });
+        }
+
+        const heatSumMsg = gettext("Heat sum, with a base temperature of") + " " + this.HEATSUM_BASE_TEMP + "&deg;C, " + gettext("calculated for") + " " 
+        + (this.getSelectedWeatherdataSourceType() == this.WEATHER_DATASOURCE_TYPE_WEATHERSTATION ? weatherStationName + " " + gettext("weatherstation") : gettext("selected coordinates"))
+        + " " + gettext("for the period starting with") + " " + heatSumStartDate.format(this.DATE_FORMAT) + " " + gettext("and ending with") + " " + heatSumEndDate.format(this.DATE_FORMAT)
+        + " " + "(" + numberOfDays + " " + gettext("days") + ")"
+        + " " + gettext("is") + ": <strong>" + heatSum.toFixed(1) + " " + gettext("day degrees") + "</strong>";
+        
+        document.getElementById("heatSumResult").innerHTML = heatSumMsg;
     }
 
     getDailyRRData(hourlyData)
diff --git a/cydiapomonella/templates/cydiapomonella/index.html b/cydiapomonella/templates/cydiapomonella/index.html
index ea7c11af08a77a3c09e282a318c0d899501583b5..880e4a13dd0a7c25eb717410cf6dbb722dca1129 100644
--- a/cydiapomonella/templates/cydiapomonella/index.html
+++ b/cydiapomonella/templates/cydiapomonella/index.html
@@ -21,26 +21,139 @@ Created: 2024-10-28
 
 {% block title%}{% trans "Cydia pomonella" %}{%endblock%}
 
+{% block customCSS %}
+<link type="text/css" rel="stylesheet" href="https://logic.testvips.nibio.no/css/3rdparty/leaflet.css" />
+<link type="text/css" rel="stylesheet" href="https://logic.testvips.nibio.no/css/mapModal.css" />
+{% endblock %}
+
 {% block extendJS %}
 <script type="text/javascript" src="{% static "js/moment.min.js" %}"></script>
-<script type="text/javascript" src="{% static "js/moment-timezone.js" %}"></script>
 <script type="text/javascript" src="{% static "js/moment-timezone-with-data.min.js" %}"></script>
+<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
 {% endblock %}
 
 {% block customJS %}
 <script type="module">
     import CydiaPomonella from "../static/js/cydiapomonella.js";
+    
     const cydiaPomonella = new CydiaPomonella();
     window.onload = (event) => {
         cydiaPomonella.renderWeatherstations();
     }
     // We need to do it this way to keep the "this" reference of the class
     window.runModel = function () {cydiaPomonella.runModel()};
-    window.runHeatSumCalculations = function () {cydiaPomonella.runHeatSumCalculations();}
+    window.runHeatSumCalculations = function () {cydiaPomonella.runHeatSumCalculations();};
+
+    
+
+    /* ########   MAP UI FUNCTIONALITY  ######### */
+    import MapModal from 'https://logic.testvips.nibio.no/js/mapModal.js';
+    const inputLatitudeElement = document.getElementById("latitude");
+    const inputLongitudeElement = document.getElementById("longitude");
+    const selectWeatherstationElement = document.getElementById("weatherStationId");
+   
+    window.displayWeatherstationInput = function () {
+        document.getElementById("weatherstation").checked = true;
+		document.getElementById('input-weatherstation').style.display="block";
+		document.getElementById('input-coordinates').style.display="none";
+		inputLatitudeElement.value = ""
+		inputLongitudeElement.value = ""
+    };
+    window.displayCoordinatesInput = function () {
+        document.getElementById("coordinates").checked = true;
+		document.getElementById('input-weatherstation').style.display="none";
+		document.getElementById('input-coordinates').style.display="block";
+		selectWeatherstationElement.selectedIndex = 0;
+    }
+
+
+    // Callback for coordinates map
+    function selectCoordinates(coordinatesData) {
+		const selectedLatitude = coordinatesData ? coordinatesData.latitude : undefined;
+		const selectedLongitude = coordinatesData ? coordinatesData.longitude : undefined;
+
+		if(selectedLatitude && selectedLongitude) {
+			inputLatitudeElement.value = selectedLatitude;
+			inputLongitudeElement.value = selectedLongitude;
+		}
+        cydiaPomonella.runModel();
+	}
+
+    let selectedPoint = null;
+    let selectedFeature = undefined;
+    window.openCoordinatesMap = () => {
+		if (inputLatitudeElement.value && inputLongitudeElement.value) {
+			selectedPoint = 1;
+			selectedFeature = { 
+				"type": "FeatureCollection", "features": [
+					{
+						"type": "Feature",
+						"geometry": {
+							"type": "Point",
+							"coordinates": [parseFloat(inputLongitudeElement.value), parseFloat(inputLatitudeElement.value)]
+						},
+						"properties": {
+							"pointOfInterestId": selectedPoint,
+						}
+					}]
+			};
+		} else {
+			selectedPoint = undefined;
+			selectedFeature = undefined;
+		}
+
+		// TODO Open map with currently selected language! (not 'nb')
+
+		const isPoiMap = false; // Map should enable selection of coordinates (not pois)
+        const allowNewPoints = true; // User should be able to select new pois
+        const coordinatesMapInstance = new MapModal('coordinates-map', selectedFeature, 'nb', isPoiMap, allowNewPoints, selectCoordinates);
+		coordinatesMapInstance.openModal(selectedPoint);
+	}
+
+    function selectPoi(poiData)
+    {
+        const selectedId = poiData ? poiData.pointOfInterestId : undefined;
+		if (selectedId) {
+			const optionIndex = Array.from(selectWeatherstationElement.options).findIndex(option => option.value == selectedId);
+			if (optionIndex !== -1) {
+				selectWeatherstationElement.selectedIndex = optionIndex;
+			} 
+		}
+        cydiaPomonella.runModel();
+    }
+
+    window.openPoiMap = () => {
+		fetch("https://lmt.nibio.no/services/rest/weatherstation/ipmdecisions", {
+                method: 'GET'
+            })
+            .then(response => response.json())
+            .then(geoJson => {
+                // FILTER with only Ids from the Cydia station list
+                let filteredFeatures = geoJson["features"]
+                .filter(feature => cydiaPomonella.appleWeatherStationIds.indexOf(feature.id) >= 0)
+                .map(feature => {
+                    feature["properties"]["pointOfInterestName"] = feature["properties"]["name"];
+                    feature["properties"]["pointOfInterestId"] = feature["id"];
+                    feature["properties"]["pointOfInterestTypeId"] = 1; // Type = Weather station
+                    return feature;
+                });
+                geoJson["features"] = filteredFeatures;
+				const isPoiMap = true; // Map should enable selection of pois
+		        const allowNewPoints = false; // User should not be able to create new pois
+				const poiMapInstance = new MapModal('poi-map', geoJson, 'nb', isPoiMap, allowNewPoints, selectPoi);
+                const selectedPoiId = cydiaPomonella.getSelectedWeatherstation();
+                poiMapInstance.openModal(selectedPoiId);
+            })
+            .catch(error => {
+                console.error('Unable to retrieve weatherstation geojson', error);
+            });
+	}
+
 </script>
 {% endblock %}
 
 {% block content %}
+<div class="singleBlockContainer">
 <div class="row">
     <div class="col-md-12">
         <h1>{% trans "Calculate the risk of attack by the coddling moth" %}</h1>
@@ -56,14 +169,43 @@ Created: 2024-10-28
     </div>
 </div>
 <div class="row">
-    <div class="col-sm-4">
+    <div class="col-md-6">
+        <div class="form-group">
+					<h4>Jeg vil bruke værdata</h4>
+					<div class="radio">
+						<label>
+							<input type="radio" name="weatherdataType" id="coordinates" value="coordinates" checked onchange="displayCoordinatesInput()">
+							for et spesifikt punkt (koordinater)
+						</label>
+						<div id="input-coordinates" class="form-inline">
+							<input type="text" class="form-control" name="latitude" id="latitude" onchange="runModel()" placeholder="Breddegrad" aria-label="Breddegrad">
+							<input type="text" class="form-control" name="longitude" id="longitude" onchange="runModel()" placeholder="Lengdegrad" aria-label="Lengdegrad">
+							<button type="button" class="btn btn-primary" onclick="openCoordinatesMap()"><i class="fa fa-map-marker fa-lg"></i> Velg i kart</button>
+						</div>
+						<div id="coordinates-map" class="map-modal"></div>
+					</div>
+					<div class="radio">
+						<label>
+						  <input type="radio" name="weatherdataType" id="weatherstation" value="weatherstation" onchange="displayWeatherstationInput()">
+						  fra en værstasjon
+						</label>
+						<div id="input-weatherstation" class="form-inline" style="display: none;">
+							<select name="weatherStationName" id="weatherStationId" class="form-control" onchange="runModel();">
+                                <option value="-1">-- {% trans "Select weather station" %} --</option>
+                            </select>
+							<button type="button" class="btn btn-primary" onclick="openPoiMap()"><i class="fa fa-map-marker fa-lg"></i> Velg i kart</button>
+						</div>
+						<div id="poi-map" class="map-modal"></div>
+					</div>
+					<span class="help-block" id="{{ form_id }}_latitude_validation"></span>
+					<span class="help-block" id="{{ form_id }}_weatherStationId_validation"></span>
+					<span class="help-block" id="{{ form_id }}_longitude_validation"></span>
+				</div>
         
-        <select name="weatherStationName" id="weatherStationId" class="form-control" onchange="runModel();">
-            <option value="-1">-- {% trans "Select weather station" %} --</option>
-        </select>
     </div>
-    <div class="col-sm-6">
+    <div class="col-md-6">
         <form>
+            <h4>Jeg vil hente data tilbake i tid fra: </h4>
             <label class="radio-inline">
                 <input type="radio" name="radioDays" value="7" checked onclick="runModel()">7 {% trans "days" %}
             </label>
@@ -110,13 +252,10 @@ Created: 2024-10-28
         </form>
     </div>
 
-    <div class="row alert alert-success">
-        {% 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 class="row alert alert-success" id="heatSumResult"></div>
 </div>
 
 <div class="row" style="height: 50px;"></div>
 
-
+</div>
 {% endblock %}
\ No newline at end of file
diff --git a/cydiapomonella/urls.py b/cydiapomonella/urls.py
index a0f60cca70fad7a53271438443a5b172aba70f2a..ed0d4162d5821280bd4981c975bdef99033b2e8b 100644
--- a/cydiapomonella/urls.py
+++ b/cydiapomonella/urls.py
@@ -23,6 +23,8 @@ from django.urls import re_path
 
 from . import views
 
+app_name = "cydiapomonella"
+
 urlpatterns = [
     re_path(r'^$', views.index,name='index'),
 ]