diff --git a/observations/locale/bg/LC_MESSAGES/django.po b/observations/locale/bg/LC_MESSAGES/django.po
index 4731b1690b95c7458c3e28ab1f89176b8a6887b9..bd6ddb647fe3654629595ea1304c70aa0e63630a 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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:04+0200\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"
@@ -23,18 +23,25 @@ msgid "Observation"
 msgstr ""
 
 #: templates/observations/detail.html:29
+#: templates/observations/timeseries.html:29
 msgid "View all observations"
 msgstr ""
 
+#: templates/observations/detail.html:29
+msgid "View all observations in time series"
+msgstr ""
+
 #: templates/observations/detail.html:32 templates/observations/index.html:46
 #: templates/observations/index.html:68
 #: templates/observations/index_old.html:63
+#: templates/observations/timeseries.html:30
 msgid "Organism"
 msgstr ""
 
 #: templates/observations/detail.html:34 templates/observations/index.html:50
 #: templates/observations/index.html:69
 #: templates/observations/index_old.html:64
+#: templates/observations/timeseries.html:32
 msgid "Crop"
 msgstr ""
 
@@ -47,15 +54,16 @@ msgstr ""
 msgid "Observation data"
 msgstr ""
 
-#: templates/observations/detail.html:86
+#: templates/observations/detail.html:91
 msgid "Observation was not quantified"
 msgstr ""
 
-#: templates/observations/detail.html:90
+#: templates/observations/detail.html:95
 msgid "Illustrations"
 msgstr ""
 
-#: templates/observations/detail.html:119
+#: templates/observations/detail.html:124
+#: templates/observations/timeseries.html:146
 msgid "Map view not available"
 msgstr ""
 
@@ -109,3 +117,8 @@ msgstr ""
 #: templates/observations/index_old.html:136
 msgid "View details"
 msgstr ""
+
+#: templates/observations/timeseries.html:23
+#: templates/observations/timeseries.html:28
+msgid "Time series"
+msgstr ""
diff --git a/observations/locale/bg/LC_MESSAGES/djangojs.po b/observations/locale/bg/LC_MESSAGES/djangojs.po
index 610729fbd25f352331a3af8654a21f9b2d27d2ab..3c2e3db79e57f984398d92f78720e98ee5816315 100644
--- a/observations/locale/bg/LC_MESSAGES/djangojs.po
+++ b/observations/locale/bg/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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:05+0200\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,26 +17,27 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: observations/static/observations/js/observationList.js:185
+
+#: static/observations/js/observationList.js:185
 msgid "Observation(s) found at location"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:203
+#: static/observations/js/observationList.js:203
 msgid "in"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:360
+#: static/observations/js/observationList.js:368
 msgid "Details"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:630
+#: static/observations/js/observationList.js:638
 msgid "Days since observation"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:633
+#: static/observations/js/observationList.js:641
 msgid "Days"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:635
+#: static/observations/js/observationList.js:643
 msgid "Older"
 msgstr ""
diff --git a/observations/locale/bs/LC_MESSAGES/django.po b/observations/locale/bs/LC_MESSAGES/django.po
index cbe5916d6cd43e6b98c8cd8cbbc589f70c0b8731..eb67e9cd3f73037ab6df6b7c82c1642f9c004ec9 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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:04+0200\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"
@@ -24,18 +24,25 @@ msgid "Observation"
 msgstr ""
 
 #: templates/observations/detail.html:29
+#: templates/observations/timeseries.html:29
 msgid "View all observations"
 msgstr ""
 
+#: templates/observations/detail.html:29
+msgid "View all observations in time series"
+msgstr ""
+
 #: templates/observations/detail.html:32 templates/observations/index.html:46
 #: templates/observations/index.html:68
 #: templates/observations/index_old.html:63
+#: templates/observations/timeseries.html:30
 msgid "Organism"
 msgstr ""
 
 #: templates/observations/detail.html:34 templates/observations/index.html:50
 #: templates/observations/index.html:69
 #: templates/observations/index_old.html:64
+#: templates/observations/timeseries.html:32
 msgid "Crop"
 msgstr ""
 
@@ -48,15 +55,16 @@ msgstr ""
 msgid "Observation data"
 msgstr ""
 
-#: templates/observations/detail.html:86
+#: templates/observations/detail.html:91
 msgid "Observation was not quantified"
 msgstr ""
 
-#: templates/observations/detail.html:90
+#: templates/observations/detail.html:95
 msgid "Illustrations"
 msgstr ""
 
-#: templates/observations/detail.html:119
+#: templates/observations/detail.html:124
+#: templates/observations/timeseries.html:146
 msgid "Map view not available"
 msgstr ""
 
@@ -110,3 +118,8 @@ msgstr ""
 #: templates/observations/index_old.html:136
 msgid "View details"
 msgstr ""
+
+#: templates/observations/timeseries.html:23
+#: templates/observations/timeseries.html:28
+msgid "Time series"
+msgstr ""
diff --git a/observations/locale/bs/LC_MESSAGES/djangojs.po b/observations/locale/bs/LC_MESSAGES/djangojs.po
index e4fa42be5763657df5ca997ef2398cb7c45a890a..6829abeeab9531e3093ff79fa09ab0248c2abc3e 100644
--- a/observations/locale/bs/LC_MESSAGES/djangojs.po
+++ b/observations/locale/bs/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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:05+0200\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,28 +16,29 @@ 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"
-#: observations/static/observations/js/observationList.js:185
+"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"
+
+#: static/observations/js/observationList.js:185
 msgid "Observation(s) found at location"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:203
+#: static/observations/js/observationList.js:203
 msgid "in"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:360
+#: static/observations/js/observationList.js:368
 msgid "Details"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:630
+#: static/observations/js/observationList.js:638
 msgid "Days since observation"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:633
+#: static/observations/js/observationList.js:641
 msgid "Days"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:635
+#: static/observations/js/observationList.js:643
 msgid "Older"
 msgstr ""
diff --git a/observations/locale/de/LC_MESSAGES/django.po b/observations/locale/de/LC_MESSAGES/django.po
index 4731b1690b95c7458c3e28ab1f89176b8a6887b9..bd6ddb647fe3654629595ea1304c70aa0e63630a 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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:04+0200\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"
@@ -23,18 +23,25 @@ msgid "Observation"
 msgstr ""
 
 #: templates/observations/detail.html:29
+#: templates/observations/timeseries.html:29
 msgid "View all observations"
 msgstr ""
 
+#: templates/observations/detail.html:29
+msgid "View all observations in time series"
+msgstr ""
+
 #: templates/observations/detail.html:32 templates/observations/index.html:46
 #: templates/observations/index.html:68
 #: templates/observations/index_old.html:63
+#: templates/observations/timeseries.html:30
 msgid "Organism"
 msgstr ""
 
 #: templates/observations/detail.html:34 templates/observations/index.html:50
 #: templates/observations/index.html:69
 #: templates/observations/index_old.html:64
+#: templates/observations/timeseries.html:32
 msgid "Crop"
 msgstr ""
 
@@ -47,15 +54,16 @@ msgstr ""
 msgid "Observation data"
 msgstr ""
 
-#: templates/observations/detail.html:86
+#: templates/observations/detail.html:91
 msgid "Observation was not quantified"
 msgstr ""
 
-#: templates/observations/detail.html:90
+#: templates/observations/detail.html:95
 msgid "Illustrations"
 msgstr ""
 
-#: templates/observations/detail.html:119
+#: templates/observations/detail.html:124
+#: templates/observations/timeseries.html:146
 msgid "Map view not available"
 msgstr ""
 
@@ -109,3 +117,8 @@ msgstr ""
 #: templates/observations/index_old.html:136
 msgid "View details"
 msgstr ""
+
+#: templates/observations/timeseries.html:23
+#: templates/observations/timeseries.html:28
+msgid "Time series"
+msgstr ""
diff --git a/observations/locale/de/LC_MESSAGES/djangojs.po b/observations/locale/de/LC_MESSAGES/djangojs.po
index fe07d3224251ae5533328991d7b2c7e7c3053a31..3c2e3db79e57f984398d92f78720e98ee5816315 100644
--- a/observations/locale/de/LC_MESSAGES/djangojs.po
+++ b/observations/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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:05+0200\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,26 +18,26 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: observations/static/observations/js/observationList.js:185
+#: static/observations/js/observationList.js:185
 msgid "Observation(s) found at location"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:203
+#: static/observations/js/observationList.js:203
 msgid "in"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:360
+#: static/observations/js/observationList.js:368
 msgid "Details"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:630
+#: static/observations/js/observationList.js:638
 msgid "Days since observation"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:633
+#: static/observations/js/observationList.js:641
 msgid "Days"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:635
+#: static/observations/js/observationList.js:643
 msgid "Older"
 msgstr ""
diff --git a/observations/locale/fi/LC_MESSAGES/django.po b/observations/locale/fi/LC_MESSAGES/django.po
index 4731b1690b95c7458c3e28ab1f89176b8a6887b9..bd6ddb647fe3654629595ea1304c70aa0e63630a 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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:04+0200\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"
@@ -23,18 +23,25 @@ msgid "Observation"
 msgstr ""
 
 #: templates/observations/detail.html:29
+#: templates/observations/timeseries.html:29
 msgid "View all observations"
 msgstr ""
 
+#: templates/observations/detail.html:29
+msgid "View all observations in time series"
+msgstr ""
+
 #: templates/observations/detail.html:32 templates/observations/index.html:46
 #: templates/observations/index.html:68
 #: templates/observations/index_old.html:63
+#: templates/observations/timeseries.html:30
 msgid "Organism"
 msgstr ""
 
 #: templates/observations/detail.html:34 templates/observations/index.html:50
 #: templates/observations/index.html:69
 #: templates/observations/index_old.html:64
+#: templates/observations/timeseries.html:32
 msgid "Crop"
 msgstr ""
 
@@ -47,15 +54,16 @@ msgstr ""
 msgid "Observation data"
 msgstr ""
 
-#: templates/observations/detail.html:86
+#: templates/observations/detail.html:91
 msgid "Observation was not quantified"
 msgstr ""
 
-#: templates/observations/detail.html:90
+#: templates/observations/detail.html:95
 msgid "Illustrations"
 msgstr ""
 
-#: templates/observations/detail.html:119
+#: templates/observations/detail.html:124
+#: templates/observations/timeseries.html:146
 msgid "Map view not available"
 msgstr ""
 
@@ -109,3 +117,8 @@ msgstr ""
 #: templates/observations/index_old.html:136
 msgid "View details"
 msgstr ""
+
+#: templates/observations/timeseries.html:23
+#: templates/observations/timeseries.html:28
+msgid "Time series"
+msgstr ""
diff --git a/observations/locale/fi/LC_MESSAGES/djangojs.po b/observations/locale/fi/LC_MESSAGES/djangojs.po
index 610729fbd25f352331a3af8654a21f9b2d27d2ab..3c2e3db79e57f984398d92f78720e98ee5816315 100644
--- a/observations/locale/fi/LC_MESSAGES/djangojs.po
+++ b/observations/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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:05+0200\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,26 +17,27 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: observations/static/observations/js/observationList.js:185
+
+#: static/observations/js/observationList.js:185
 msgid "Observation(s) found at location"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:203
+#: static/observations/js/observationList.js:203
 msgid "in"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:360
+#: static/observations/js/observationList.js:368
 msgid "Details"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:630
+#: static/observations/js/observationList.js:638
 msgid "Days since observation"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:633
+#: static/observations/js/observationList.js:641
 msgid "Days"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:635
+#: static/observations/js/observationList.js:643
 msgid "Older"
 msgstr ""
diff --git a/observations/locale/nb/LC_MESSAGES/django.mo b/observations/locale/nb/LC_MESSAGES/django.mo
index dd5c8aff24103c45080a796510f29378c22406b8..9fc6cf3260d71eb6ad11ff6a79cb07acf3bb3107 100755
Binary files a/observations/locale/nb/LC_MESSAGES/django.mo and b/observations/locale/nb/LC_MESSAGES/django.mo differ
diff --git a/observations/locale/nb/LC_MESSAGES/django.po b/observations/locale/nb/LC_MESSAGES/django.po
index 0cb163e88c872646a18f71414dd67746923b2b12..33c379f0611ec062e67f79985e53fb9d62c77cec 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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:04+0200\n"
 "PO-Revision-Date: 2024-06-06 13:42+0200\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -24,18 +24,25 @@ msgid "Observation"
 msgstr "Observasjon"
 
 #: templates/observations/detail.html:29
+#: templates/observations/timeseries.html:29
 msgid "View all observations"
 msgstr "Se alle observasjoner"
 
+#: templates/observations/detail.html:29
+msgid "View all observations in time series"
+msgstr "Se alle observasjoner i tidsserie"
+
 #: templates/observations/detail.html:32 templates/observations/index.html:46
 #: templates/observations/index.html:68
 #: templates/observations/index_old.html:63
+#: templates/observations/timeseries.html:30
 msgid "Organism"
 msgstr "Organisme"
 
 #: templates/observations/detail.html:34 templates/observations/index.html:50
 #: templates/observations/index.html:69
 #: templates/observations/index_old.html:64
+#: templates/observations/timeseries.html:32
 msgid "Crop"
 msgstr "Kultur"
 
@@ -48,15 +55,16 @@ msgstr "Observasjonsdato"
 msgid "Observation data"
 msgstr "Observasjonsdata"
 
-#: templates/observations/detail.html:86
+#: templates/observations/detail.html:91
 msgid "Observation was not quantified"
 msgstr "Observasjonen ble ikke kvantifisert"
 
-#: templates/observations/detail.html:90
+#: templates/observations/detail.html:95
 msgid "Illustrations"
 msgstr "Illustrasjoner"
 
-#: templates/observations/detail.html:119
+#: templates/observations/detail.html:124
+#: templates/observations/timeseries.html:146
 msgid "Map view not available"
 msgstr "Kartvisning ikke tilgjengelig"
 
@@ -111,5 +119,10 @@ msgstr "Kultur"
 msgid "View details"
 msgstr "Se detaljer"
 
+#: templates/observations/timeseries.html:23
+#: templates/observations/timeseries.html:28
+msgid "Time series"
+msgstr "Tidsserie"
+
 #~ msgid "Observer"
 #~ msgstr "Observatør"
diff --git a/observations/locale/nb/LC_MESSAGES/djangojs.po b/observations/locale/nb/LC_MESSAGES/djangojs.po
index 8b3f93b88cf2b2f7308d9f1f1a14e86aa75b6a4e..973b8e1e70440cdcf872c139f807ae59517eab6e 100644
--- a/observations/locale/nb/LC_MESSAGES/djangojs.po
+++ b/observations/locale/nb/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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:05+0200\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,26 +18,26 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: observations/static/observations/js/observationList.js:185
+#: static/observations/js/observationList.js:185
 msgid "Observation(s) found at location"
 msgstr "Observasjon(er) funnet på lokalitet"
 
-#: observations/static/observations/js/observationList.js:203
+#: static/observations/js/observationList.js:203
 msgid "in"
 msgstr "i"
 
-#: observations/static/observations/js/observationList.js:360
+#: static/observations/js/observationList.js:368
 msgid "Details"
 msgstr "Detaljer"
 
-#: observations/static/observations/js/observationList.js:630
+#: static/observations/js/observationList.js:638
 msgid "Days since observation"
 msgstr "Dager siden observasjon"
 
-#: observations/static/observations/js/observationList.js:633
+#: static/observations/js/observationList.js:641
 msgid "Days"
 msgstr "Dager"
 
-#: observations/static/observations/js/observationList.js:635
+#: static/observations/js/observationList.js:643
 msgid "Older"
 msgstr "Eldre"
diff --git a/observations/locale/vi/LC_MESSAGES/django.po b/observations/locale/vi/LC_MESSAGES/django.po
index 28da2c7a793d86a3d02915b76aa7a77af34acfcb..de9d9ca18b7130f969afac08e023f8acbab7ac23 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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:04+0200\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"
@@ -23,18 +23,25 @@ msgid "Observation"
 msgstr ""
 
 #: templates/observations/detail.html:29
+#: templates/observations/timeseries.html:29
 msgid "View all observations"
 msgstr ""
 
+#: templates/observations/detail.html:29
+msgid "View all observations in time series"
+msgstr ""
+
 #: templates/observations/detail.html:32 templates/observations/index.html:46
 #: templates/observations/index.html:68
 #: templates/observations/index_old.html:63
+#: templates/observations/timeseries.html:30
 msgid "Organism"
 msgstr ""
 
 #: templates/observations/detail.html:34 templates/observations/index.html:50
 #: templates/observations/index.html:69
 #: templates/observations/index_old.html:64
+#: templates/observations/timeseries.html:32
 msgid "Crop"
 msgstr ""
 
@@ -47,15 +54,16 @@ msgstr ""
 msgid "Observation data"
 msgstr ""
 
-#: templates/observations/detail.html:86
+#: templates/observations/detail.html:91
 msgid "Observation was not quantified"
 msgstr ""
 
-#: templates/observations/detail.html:90
+#: templates/observations/detail.html:95
 msgid "Illustrations"
 msgstr ""
 
-#: templates/observations/detail.html:119
+#: templates/observations/detail.html:124
+#: templates/observations/timeseries.html:146
 msgid "Map view not available"
 msgstr ""
 
@@ -109,3 +117,8 @@ msgstr ""
 #: templates/observations/index_old.html:136
 msgid "View details"
 msgstr ""
+
+#: templates/observations/timeseries.html:23
+#: templates/observations/timeseries.html:28
+msgid "Time series"
+msgstr ""
diff --git a/observations/locale/vi/LC_MESSAGES/djangojs.po b/observations/locale/vi/LC_MESSAGES/djangojs.po
index 0bf1eb77b2f7bde9421a76c06a2a544b89838d4b..2a64a40ef806ee11401abfd15cd46664162a264c 100644
--- a/observations/locale/vi/LC_MESSAGES/djangojs.po
+++ b/observations/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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:05+0200\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,26 +17,27 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-#: observations/static/observations/js/observationList.js:185
+
+#: static/observations/js/observationList.js:185
 msgid "Observation(s) found at location"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:203
+#: static/observations/js/observationList.js:203
 msgid "in"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:360
+#: static/observations/js/observationList.js:368
 msgid "Details"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:630
+#: static/observations/js/observationList.js:638
 msgid "Days since observation"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:633
+#: static/observations/js/observationList.js:641
 msgid "Days"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:635
+#: static/observations/js/observationList.js:643
 msgid "Older"
 msgstr ""
diff --git a/observations/locale/zh_Hans/LC_MESSAGES/django.po b/observations/locale/zh_Hans/LC_MESSAGES/django.po
index 0107c33f67eaf73b561a43a21703d7f1c2c6f783..8b41e939b5314377cc801ad242480ce83fbbb739 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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:04+0200\n"
 "PO-Revision-Date: 2016-10-27 11:26+0200\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -22,18 +22,27 @@ msgid "Observation"
 msgstr "观测"
 
 #: templates/observations/detail.html:29
+#: templates/observations/timeseries.html:29
 msgid "View all observations"
 msgstr "查看所有观测"
 
+#: templates/observations/detail.html:29
+#, fuzzy
+#| msgid "View all observations"
+msgid "View all observations in time series"
+msgstr "查看所有观测"
+
 #: templates/observations/detail.html:32 templates/observations/index.html:46
 #: templates/observations/index.html:68
 #: templates/observations/index_old.html:63
+#: templates/observations/timeseries.html:30
 msgid "Organism"
 msgstr "生物"
 
 #: templates/observations/detail.html:34 templates/observations/index.html:50
 #: templates/observations/index.html:69
 #: templates/observations/index_old.html:64
+#: templates/observations/timeseries.html:32
 msgid "Crop"
 msgstr "作物"
 
@@ -46,17 +55,18 @@ msgstr "观测时间"
 msgid "Observation data"
 msgstr "观测数据"
 
-#: templates/observations/detail.html:86
+#: templates/observations/detail.html:91
 msgid "Observation was not quantified"
 msgstr "观测没有定量化"
 
-#: templates/observations/detail.html:90
+#: templates/observations/detail.html:95
 #, fuzzy
 #| msgid "Observations"
 msgid "Illustrations"
 msgstr "观测"
 
-#: templates/observations/detail.html:119
+#: templates/observations/detail.html:124
+#: templates/observations/timeseries.html:146
 msgid "Map view not available"
 msgstr ""
 
@@ -113,5 +123,10 @@ msgstr "作物"
 msgid "View details"
 msgstr "看细节"
 
+#: templates/observations/timeseries.html:23
+#: templates/observations/timeseries.html:28
+msgid "Time series"
+msgstr ""
+
 #~ msgid "Observer"
 #~ msgstr "观测者"
diff --git a/observations/locale/zh_Hans/LC_MESSAGES/djangojs.po b/observations/locale/zh_Hans/LC_MESSAGES/djangojs.po
index 1cf683474f13ba0dad7a002ecbc21b064257bd91..2a64a40ef806ee11401abfd15cd46664162a264c 100644
--- a/observations/locale/zh_Hans/LC_MESSAGES/djangojs.po
+++ b/observations/locale/zh_Hans/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-06-16 09:23+0200\n"
+"POT-Creation-Date: 2024-06-18 15:05+0200\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,26 +18,26 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: observations/static/observations/js/observationList.js:185
+#: static/observations/js/observationList.js:185
 msgid "Observation(s) found at location"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:203
+#: static/observations/js/observationList.js:203
 msgid "in"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:360
+#: static/observations/js/observationList.js:368
 msgid "Details"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:630
+#: static/observations/js/observationList.js:638
 msgid "Days since observation"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:633
+#: static/observations/js/observationList.js:641
 msgid "Days"
 msgstr ""
 
-#: observations/static/observations/js/observationList.js:635
+#: static/observations/js/observationList.js:643
 msgid "Older"
 msgstr ""
diff --git a/observations/templates/observations/detail.html b/observations/templates/observations/detail.html
index 1c5654da7f958c3ff89851ab50909d5aed5f7edd..8611b0e4fa1386234702b420ff9f28a13ffa695a 100755
--- a/observations/templates/observations/detail.html
+++ b/observations/templates/observations/detail.html
@@ -26,7 +26,7 @@
 {% block content %}
 <div class="singleBlockContainer">
 	<h1>{% trans "Observation" %}</h1>
-	<p><a href="/observations" class="btn btn-default back" role="button">{% trans "View all observations" %}</a></p>
+	<p><a href="/observations" class="btn btn-default back" role="button">{% trans "View all observations" %}</a> <a id="timeSeriesLink" class="btn btn-default back" role="button">{% trans "View all observations in time series" %}</a></p>
 	<div class="row">
 		<div class="col-md-6">
 			<h4>{% trans "Organism" %}</h4>
@@ -63,6 +63,11 @@
 		var uuidParam = settings.userUuid != null ? "?userUUID=" + settings.userUuid : "";
 		$.getJSON( "/vipslogicproxy/rest/observation/{{observation_id}}/" + uuidParam , function( observation ) {
 		  	//console.log(observation);
+            if(observation.observationTimeSeriesId) {
+                document.getElementById("timeSeriesLink").href = "/observations/timeseries/" + observation.observationTimeSeriesId;
+            } else {
+                document.getElementById("timeSeriesLink").hidden = true;
+            }
 		  	document.getElementById("organismName").innerHTML = getLocalizedOrganismName(observation.organism) + " <i>(" + observation.organism.latinName + ")</i>";
 		  	document.getElementById("cropOrganismName").innerHTML = getLocalizedOrganismName(observation.cropOrganism) + " <i>(" + observation.cropOrganism.latinName + ")</i>";
 		  	document.getElementById("timeOfObservation").innerHTML = getStandardFormattedDate(observation.timeOfObservation);
@@ -71,11 +76,17 @@
 		  	document.getElementById("observationText").innerHTML = observation.observationText;
 		  	if(observation.isQuantified != undefined && observation.isQuantified)
 		  	{
-			  	var observationDataHTML = "<ul>";
+                const dataSchema = JSON.parse(observation.observationDataSchema["dataSchema"])
+                let dataVars = {}
+                Object.keys(dataSchema['properties']).forEach(function(key) {
+                    dataVars[key] = dataSchema['properties'][key]['title']
+                });
+
+                var observationDataHTML = "<ul>";
 			  	var observationData = JSON.parse(observation.observationData);
 			  	for(var fieldName in observationData)
 			  	{
-			  		observationDataHTML += "<li>" + capitalizeFirstLetter(fieldName) + ": " + observationData[fieldName] + "</li>";
+			  		observationDataHTML += "<li>" + dataVars[fieldName] + ": " + observationData[fieldName] + "</li>";
 			  	}
 			  	observationDataHTML += "</ul>";
 			  	document.getElementById("observationData").innerHTML = observationDataHTML;
diff --git a/observations/templates/observations/timeseries.html b/observations/templates/observations/timeseries.html
index 8c9f923446b0dce3cf1adaf8884c8eb2d20cddd3..33a21db712e7a5a284bc056ac3c6cc1d69d7860e 100644
--- a/observations/templates/observations/timeseries.html
+++ b/observations/templates/observations/timeseries.html
@@ -116,7 +116,7 @@
             const headers = Object.keys(observations[0]);
 
             const dateCell = headerRow.insertCell();
-            dateCell.outerHTML = `<th>Observasjonsdag</th>`;
+            dateCell.outerHTML = "<th>" + gettext("Observasjonsdato") + "</th>";
 
             Object.keys(dataVars).forEach((key, index) => {
                 const dataCell = headerRow.insertCell();
@@ -127,7 +127,7 @@
             observations.forEach((observation, rowIndex) => {
                 const row = tbody.insertRow(rowIndex);
                 const dateCell = row.insertCell();
-                dateCell.innerText = getStandardFormattedDate(observation.timeOfObservation);
+                dateCell.outerHTML = "<td><a href='/observations/" +observation.observationId + "'>" + getStandardFormattedDate(observation.timeOfObservation) + "</a></td>";
 
                 Object.keys(dataVars).forEach((key, index) => {
                     const dataCell = row.insertCell();