diff --git a/VIPSWeb/__init__.py b/VIPSWeb/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/VIPSWeb/__init__.py
+++ b/VIPSWeb/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/VIPSWeb/context_processors.py b/VIPSWeb/context_processors.py
index c401f6cbd48eca91ca8156544db3977790c89dd1..ef3b3e765d59ef5da139d5bd4c1545d52c3a4678 100755
--- a/VIPSWeb/context_processors.py
+++ b/VIPSWeb/context_processors.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
-# 
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
+# 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/>.
+#
+#
 
 from django.conf import settings as _settings
 
diff --git a/VIPSWeb/local_settings_sample.py b/VIPSWeb/local_settings_sample.py
index d0870a6f31172a700f6528bb606b9877733d5d04..fee12ee535aa95325b945d17fa722fd4e1522528 100755
--- a/VIPSWeb/local_settings_sample.py
+++ b/VIPSWeb/local_settings_sample.py
@@ -1,22 +1,25 @@
 # -*- coding: UTF-8 -*-
 
 #
-# Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
-# 
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
+# 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/>.
+#
+#
 
 ## SAMPLE local_settings file. Copy to local_settings.py and configure as needed.
 ## Keep local_settings.py out of repository!! (already added to .gitignore)
diff --git a/VIPSWeb/locale/nb/LC_MESSAGES/django.mo b/VIPSWeb/locale/nb/LC_MESSAGES/django.mo
index 8b308086410300c9c2e25daee0c9a06f9de9b41c..0bf5d03b0e488c7746cf59fd5444d6c9f0dbd4c8 100755
Binary files a/VIPSWeb/locale/nb/LC_MESSAGES/django.mo and b/VIPSWeb/locale/nb/LC_MESSAGES/django.mo differ
diff --git a/VIPSWeb/locale/nb/LC_MESSAGES/django.po b/VIPSWeb/locale/nb/LC_MESSAGES/django.po
index ba47f2ff1eac121f9aad3bf8546cfdf74c548a62..03a8e34c59fc97814a7ba371ffbd3849134fdb27 100755
--- a/VIPSWeb/locale/nb/LC_MESSAGES/django.po
+++ b/VIPSWeb/locale/nb/LC_MESSAGES/django.po
@@ -1,5 +1,5 @@
 #    Copyright (C) 2014 NIBIO
-#    
+#
 #    This file is part of VIPSWeb
 #
 #    VIPSWeb is free software: you can redistribute it and/or modify
@@ -15,28 +15,28 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with VIPSWeb.  If not, see <http://www.gnu.org/licenses/>.
 #
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: VIPSWeb\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2023-11-22 16:31+0100\n"
-"PO-Revision-Date: 2013-11-07 20:18+0200\n"
+"PO-Revision-Date: 2023-12-20 12:48+0100\n"
 "Last-Translator: Tor-Einar Skog <tor-einar.skog@nibio.no>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \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.1\n"
 
 #: VIPSWeb/local_settings.py:182
 msgid "Risk maps"
-msgstr "Grid-varsler"
+msgstr "Risikokart"
 
 #: VIPSWeb/local_settings.py:186
 msgid "About risk maps"
-msgstr "Om grid-varsler"
+msgstr "Om risikokart"
 
 #: VIPSWeb/local_settings.py:190
 msgid "Septoria reference humidity model"
@@ -92,7 +92,7 @@ msgstr "Logg inn"
 
 #: VIPSWeb/templates/base.html:119
 msgid "This is the default page contents."
-msgstr "Dette er standardinnholdet på siden"
+msgstr "Dette er standardinnholdet på siden."
 
 #: VIPSWeb/templates/base.html:146
 msgid "This website uses cookies to give you the best possible user experience"
diff --git a/VIPSWeb/settings.py b/VIPSWeb/settings.py
index 65ef58f06bbf9af829c27d57d530dd276f014a84..885bcc0b40be1f0319fc462f8f3865ea594ffeec 100755
--- a/VIPSWeb/settings.py
+++ b/VIPSWeb/settings.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 # Django settings for VIPSWeb project.
 import os
diff --git a/VIPSWeb/static/js/frontpage.js b/VIPSWeb/static/js/frontpage.js
index 9d8eeef52c1d68e8a3512662b18ddbd9242d06b6..e6b379eb065d91fb554ea489f643b424568d2b91 100755
--- a/VIPSWeb/static/js/frontpage.js
+++ b/VIPSWeb/static/js/frontpage.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2018 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/VIPSWeb/static/js/frontpageMap.js b/VIPSWeb/static/js/frontpageMap.js
index 7265fec76d446ecfe5091ec8ec2aea9f09ebad9a..1986310d5591cc324599be7af2fff6e0e395c90d 100755
--- a/VIPSWeb/static/js/frontpageMap.js
+++ b/VIPSWeb/static/js/frontpageMap.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2018 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/VIPSWeb/static/js/js_apps/oatFloweringModelForm.js b/VIPSWeb/static/js/js_apps/oatFloweringModelForm.js
index d29c2c416090ade292dcfdb7b88811054b7c8caa..7212fc68b00a4a754d9472d0c9eb450f7be78aa2 100755
--- a/VIPSWeb/static/js/js_apps/oatFloweringModelForm.js
+++ b/VIPSWeb/static/js/js_apps/oatFloweringModelForm.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the 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.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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 VIPSWeb.  If not, see <http://www.gnu.org/licenses/>.
- * 
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
  */
 /**
  * Self-serving application that calculates flowering period for oat.
diff --git a/VIPSWeb/static/js/util.js b/VIPSWeb/static/js/util.js
index fa65784e084a2bf6060fd7060db4c938a9108201..633a3ccc8fe992d4d4ecaba00e48cc040852838f 100755
--- a/VIPSWeb/static/js/util.js
+++ b/VIPSWeb/static/js/util.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/VIPSWeb/static/js/validateForm.js b/VIPSWeb/static/js/validateForm.js
index c7afa7d5080abb0bd515b10d3963e62e628c59d3..3fc3e1036d97b81659811e6d88686b9a52ea61ef 100755
--- a/VIPSWeb/static/js/validateForm.js
+++ b/VIPSWeb/static/js/validateForm.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 // Constant defs for field types. 
diff --git a/VIPSWeb/static/js/weatherStationSelectorMap.js b/VIPSWeb/static/js/weatherStationSelectorMap.js
index b2b9d86b610a955910b449d5aebc2ca6b3257b6e..70f10538d65302f70c40605efadc86ddbad2704b 100755
--- a/VIPSWeb/static/js/weatherStationSelectorMap.js
+++ b/VIPSWeb/static/js/weatherStationSelectorMap.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/VIPSWeb/templatetags/__init__.py b/VIPSWeb/templatetags/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/VIPSWeb/templatetags/__init__.py
+++ b/VIPSWeb/templatetags/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/VIPSWeb/templatetags/template_helper.py b/VIPSWeb/templatetags/template_helper.py
index 0c3006ea621f0dd8c1fbd3e3d14a348d359ef1f2..3cf4f5e07908a30de505b2564a7207bd47192e2d 100755
--- a/VIPSWeb/templatetags/template_helper.py
+++ b/VIPSWeb/templatetags/template_helper.py
@@ -1,4 +1,24 @@
 # -*- coding: UTF-8 -*-
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django import template
 from django.utils.translation import gettext as _
 from django.utils import translation
diff --git a/VIPSWeb/test.py b/VIPSWeb/test.py
index cc1c5a96702b086f4dad4aa69b913772186f3c5a..895f7ee1de56e33da04f3080a205ef00520ccd59 100644
--- a/VIPSWeb/test.py
+++ b/VIPSWeb/test.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 import unittest
 from selenium import webdriver
diff --git a/VIPSWeb/urls.py b/VIPSWeb/urls.py
index 268850ec116eeaca4631b0a52ef472b93e39a552..756b6eddd05fcf18d15c1582b52d99701dcc821e 100755
--- a/VIPSWeb/urls.py
+++ b/VIPSWeb/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 
 from django.urls import re_path, path, include
@@ -31,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'],
+    'packages': ['forecasts','vips_messages','VIPSWeb','roughage', 'spatial'],
     'domain': 'djangojs',
 }
 
diff --git a/VIPSWeb/views.py b/VIPSWeb/views.py
index 74f2fee79de9e9896d5f2a92231139a040213b02..d2e71e4fcb14e14372a4ddfdd83747310b2de1c4 100755
--- a/VIPSWeb/views.py
+++ b/VIPSWeb/views.py
@@ -1,21 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
-# @author: Tor-Einar Skog <tor-einar.skog@nibio.no>
 import datetime
 from django.shortcuts import render
 from django.http import HttpResponse,  HttpResponseBadRequest, HttpResponseNotAllowed  
diff --git a/VIPSWeb/wsgi.py b/VIPSWeb/wsgi.py
index ff95b082818085ce939804325a72d1f6b190c22a..0b89e49c8e9683045de917b1e379086dfea833dd 100755
--- a/VIPSWeb/wsgi.py
+++ b/VIPSWeb/wsgi.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 """
 WSGI config for VIPSWeb project.
diff --git a/applefruitmoth/__init__.py b/applefruitmoth/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/applefruitmoth/__init__.py
+++ b/applefruitmoth/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/applefruitmoth/admin.py b/applefruitmoth/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/applefruitmoth/admin.py
+++ b/applefruitmoth/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/applefruitmoth/migrations/__init__.py b/applefruitmoth/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/applefruitmoth/migrations/__init__.py
+++ b/applefruitmoth/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/applefruitmoth/models.py b/applefruitmoth/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100755
--- a/applefruitmoth/models.py
+++ b/applefruitmoth/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/applefruitmoth/static/applefruitmoth/js/map.js b/applefruitmoth/static/applefruitmoth/js/map.js
index 32af327d5d90e0ae50cd2e3b99b8acfe6de476b2..159a556163751e2d32e610fe0f28f7d4a0c85a44 100755
--- a/applefruitmoth/static/applefruitmoth/js/map.js
+++ b/applefruitmoth/static/applefruitmoth/js/map.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 var initMap = function(container, mapAttribution)
diff --git a/applefruitmoth/tests.py b/applefruitmoth/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/applefruitmoth/tests.py
+++ b/applefruitmoth/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/applefruitmoth/urls.py b/applefruitmoth/urls.py
index f694372d9ee5f0ea4b13168d2c3f43b10c8f3569..9cd9b0317891153efa6323aa5d5d2719e282b5e6 100755
--- a/applefruitmoth/urls.py
+++ b/applefruitmoth/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 from applefruitmoth import views
diff --git a/applefruitmoth/views.py b/applefruitmoth/views.py
index 2636be88df7de06fcf1856fa2b5a5a6f503760f1..b9a0e437ac8e1b95bb2fe47322efcb3fbe6f156d 100755
--- a/applefruitmoth/views.py
+++ b/applefruitmoth/views.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.shortcuts import render
 
 # Create your views here.
diff --git a/calculators/__init__.py b/calculators/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/calculators/__init__.py
+++ b/calculators/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/calculators/admin.py b/calculators/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/calculators/admin.py
+++ b/calculators/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/calculators/models.py b/calculators/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100755
--- a/calculators/models.py
+++ b/calculators/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/calculators/static/calculators/js/eil.js b/calculators/static/calculators/js/eil.js
index e2a830bffec774f1ad9c7b7fe91c9dcb0e12a5a4..37bf24fa5152c071b4ffd339a29253e21f89b0bc 100755
--- a/calculators/static/calculators/js/eil.js
+++ b/calculators/static/calculators/js/eil.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/calculators/tests.py b/calculators/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/calculators/tests.py
+++ b/calculators/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/calculators/urls.py b/calculators/urls.py
index 6c1644cb7752a1bde6d101bc1f3073fbacf5c996..a08269b9e9cec93d1729c467f08f906d59c7e9e2 100755
--- a/calculators/urls.py
+++ b/calculators/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 from calculators import views
diff --git a/calculators/views.py b/calculators/views.py
index bcaeb63e2b53c31c637727f649e0577306c10089..abe90548d927f3e69163f3b7034caf0fbb630e65 100755
--- a/calculators/views.py
+++ b/calculators/views.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.shortcuts import render
 
 # Create your views here.
diff --git a/cerealblotchmodels/__init__.py b/cerealblotchmodels/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/cerealblotchmodels/__init__.py
+++ b/cerealblotchmodels/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/cerealblotchmodels/admin.py b/cerealblotchmodels/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/cerealblotchmodels/admin.py
+++ b/cerealblotchmodels/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/cerealblotchmodels/models.py b/cerealblotchmodels/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100755
--- a/cerealblotchmodels/models.py
+++ b/cerealblotchmodels/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/cerealblotchmodels/tests.py b/cerealblotchmodels/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/cerealblotchmodels/tests.py
+++ b/cerealblotchmodels/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/cerealblotchmodels/urls.py b/cerealblotchmodels/urls.py
index e4368fe9d1603f1442fe5d7eb6050f19bada898e..82665a0fa6a385c847ebf2393e18aa1088b8dfef 100755
--- a/cerealblotchmodels/urls.py
+++ b/cerealblotchmodels/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 from cerealblotchmodels import views
diff --git a/cerealblotchmodels/views.py b/cerealblotchmodels/views.py
index b968b1012f836adde8f57af346e98f5acc4c54f8..d81434eb3b801dacfa002b182f0bc8512102b8fd 100755
--- a/cerealblotchmodels/views.py
+++ b/cerealblotchmodels/views.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.shortcuts import render
 from django.conf import settings
 from datetime import datetime
diff --git a/common/__init__.py b/common/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/common/__init__.py
+++ b/common/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/common/middleware/__init__.py b/common/middleware/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/common/middleware/__init__.py
+++ b/common/middleware/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/common/middleware/whodid.py b/common/middleware/whodid.py
index 8a40f0042b4ddcd23925ee697e881f0f360f43e1..c6c8947b06b11ebcc54a2f4635084507c5d8da92 100755
--- a/common/middleware/whodid.py
+++ b/common/middleware/whodid.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 """
 #
 # Copyright (c) 2014 NIBIO <http://www.nibio.no/>
diff --git a/common/util.py b/common/util.py
index 74015f0aac788479dc27e6fd0b32c3493baef232..dfa458f408ad91e39fedc61b89f2a8da7d966850 100755
--- a/common/util.py
+++ b/common/util.py
@@ -1,21 +1,24 @@
 # coding: utf-8
 #
-# Copyright (c) 2018 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 # Author: Tor-Einar Skog <tor-einar.skog@nibio.no>
 
diff --git a/cydiapomonella/__init__.py b/cydiapomonella/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100644
--- a/cydiapomonella/__init__.py
+++ b/cydiapomonella/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/cydiapomonella/admin.py b/cydiapomonella/admin.py
index 13be29d96fa090f33674d220cade585cf961ad8f..961396020284bfc40d40a1bfd5ded17f1ea43a41 100644
--- a/cydiapomonella/admin.py
+++ b/cydiapomonella/admin.py
@@ -1,4 +1,24 @@
 # -*- coding: utf-8 -*-
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from __future__ import unicode_literals
 
 from django.contrib import admin
diff --git a/cydiapomonella/apps.py b/cydiapomonella/apps.py
index 47324dfe946a2957c9613a52db2ae8c9eca7f4c0..4f116fef5ab4f82e1dcfa0531f2fcf5ea4c46d06 100644
--- a/cydiapomonella/apps.py
+++ b/cydiapomonella/apps.py
@@ -1,4 +1,24 @@
 # -*- coding: utf-8 -*-
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from __future__ import unicode_literals
 
 from django.apps import AppConfig
diff --git a/cydiapomonella/migrations/__init__.py b/cydiapomonella/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100644
--- a/cydiapomonella/migrations/__init__.py
+++ b/cydiapomonella/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/cydiapomonella/models.py b/cydiapomonella/models.py
index 1dfab76043e92738de321f817d6185000e0a9440..67fe01bfbe41560fdf1c18915a083d6cc79d472e 100644
--- a/cydiapomonella/models.py
+++ b/cydiapomonella/models.py
@@ -1,4 +1,24 @@
 # -*- coding: utf-8 -*-
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from __future__ import unicode_literals
 
 from django.db import models
diff --git a/cydiapomonella/tests.py b/cydiapomonella/tests.py
index 5982e6bcd29dd7a86f95cb9ce468697474e59287..994369db66fc41c70b77839739003e61062b871b 100644
--- a/cydiapomonella/tests.py
+++ b/cydiapomonella/tests.py
@@ -1,4 +1,24 @@
 # -*- coding: utf-8 -*-
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from __future__ import unicode_literals
 
 from django.test import TestCase
diff --git a/cydiapomonella/urls.py b/cydiapomonella/urls.py
index 5005bba0554d72f317d49fab6a4214057d665fc5..a0f60cca70fad7a53271438443a5b172aba70f2a 100644
--- a/cydiapomonella/urls.py
+++ b/cydiapomonella/urls.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 
 from django.urls import re_path
 
diff --git a/cydiapomonella/views.py b/cydiapomonella/views.py
index f05e2bcaed1d46d6cadd4faee13a2935693444eb..d94b97a5064b1490c4df3870f8560e9359a55477 100644
--- a/cydiapomonella/views.py
+++ b/cydiapomonella/views.py
@@ -1,4 +1,24 @@
 # -*- coding: utf-8 -*-
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from __future__ import unicode_literals
 
 from django.shortcuts import render
diff --git a/docs/install.md b/docs/install.md
index 029d6d5039e184897b7e254297bc2a8e1478fa41..cd7afa1e18ae930fda92228ff1dae84111436411 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -73,4 +73,14 @@ Each installation of VIPSWeb can be customized in several ways
 This is done by making a copy of `local_settings_sample.py` to `local_settings.py` and customizing it. `local_settings.py` is ignored by Git.
 
 ## Configuration of VIPSLogic
-TODO
\ No newline at end of file
+TODO
+
+## Deployment of updates (AKA pipeline)
+### Updating translations
+VIPSWeb/Django is using the GNU gettext system for translating phrases. In the git repository, the sourece `.po` files are updated, but the compiled `.mo` files are ignored. Thus, if an update of VIPSWeb contains new or updated translated texts/phrases, you need to compile them using the command 
+
+```bash
+$ django-admin compilemessages
+```
+
+This requires that you have [GNU gettext](https://www.gnu.org/software/gettext/) installed on your server.
\ No newline at end of file
diff --git a/docs/translation.md b/docs/translation.md
index b3f6335f0f3f1d3662ded3977dcce79451ffa951..ab9a008e7b456b0392d9560aa197b8bcad9d2269 100644
--- a/docs/translation.md
+++ b/docs/translation.md
@@ -75,4 +75,5 @@ From the source root:
 
 ```
 $ ./manage.py compilemessages
-```
\ No newline at end of file
+```
+**Please note that you will have to do this also when deploying new code to a server, as we don't keep the compiled `.mo` files in GitLab**
\ No newline at end of file
diff --git a/forecasts/__init__.py b/forecasts/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/forecasts/__init__.py
+++ b/forecasts/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/forecasts/admin.py b/forecasts/admin.py
index 07dd750edf8bbec0b7744f281032e3751e5581fc..231553214809e0fe9226a93b92a50f339b19f7e1 100755
--- a/forecasts/admin.py
+++ b/forecasts/admin.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 from django.contrib import admin
 from forecasts.models import ResultParameter, ResultParameterLocal, MeasurementUnit, ModelGraphParameter, HighChartsType
 
diff --git a/forecasts/models.py b/forecasts/models.py
index cf56d7542afa24a628cd6da3012929a73cac375b..1def18fcdb916d0363de755d4c72f221c574f0e2 100755
--- a/forecasts/models.py
+++ b/forecasts/models.py
@@ -1,21 +1,24 @@
 # coding: utf-8
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 import math
 import requests
diff --git a/forecasts/static/forecasts/js/forecasts.js b/forecasts/static/forecasts/js/forecasts.js
index 70559a3b8139358f0b1d1a34645884baffa00ac8..2af41636b964954c50ea5ec6f4db8e1c6048020d 100755
--- a/forecasts/static/forecasts/js/forecasts.js
+++ b/forecasts/static/forecasts/js/forecasts.js
@@ -1,3 +1,24 @@
+/*
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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/>.
+ *
+ */
+
 /**
 *
 */
diff --git a/forecasts/templates/models/modelLocalNames.js b/forecasts/templates/models/modelLocalNames.js
index fbcd1cb333e5c64aa235a3a39a9734e44ec98661..73b41abad25887df0672bf772f7b83b923c179b2 100755
--- a/forecasts/templates/models/modelLocalNames.js
+++ b/forecasts/templates/models/modelLocalNames.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/forecasts/templatetags/forecast_extras.py b/forecasts/templatetags/forecast_extras.py
index 5c6104ff3bdde5a9dfc18a9fa25a77e9b088636c..e6098a592151ce443a7d0dfb201be303772039e1 100755
--- a/forecasts/templatetags/forecast_extras.py
+++ b/forecasts/templatetags/forecast_extras.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 from django import template
 
 register = template.Library()
diff --git a/forecasts/tests.py b/forecasts/tests.py
index 501deb776c16733b19f3509d86e125df78958261..f4bac6527d0d6c6822d5477dbdf96c0f9c7071f4 100755
--- a/forecasts/tests.py
+++ b/forecasts/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 """
 This file demonstrates writing tests using the unittest module. These will pass
 when you run "manage.py test".
diff --git a/forecasts/urls.py b/forecasts/urls.py
index 9c3499ec655f14f1c02dd877988c9951d3198eea..400e856fbc37a60a067412645b5b64b3d1561919 100755
--- a/forecasts/urls.py
+++ b/forecasts/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 from django.views.decorators.cache import cache_page
diff --git a/forecasts/views.py b/forecasts/views.py
index f8f8f9aeb0a69176a50483595b9e8f3d7c129ef3..6dce05debd5b941312f4c0d2a735556c0dfdc5d2 100755
--- a/forecasts/views.py
+++ b/forecasts/views.py
@@ -1,21 +1,23 @@
 #
-# Copyright (c) 2017 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
 #
-# @author: Tor-Einar Skog <tor-einar.skog@nibio.no> 
 
 from datetime import datetime
 from dateutil.relativedelta import relativedelta
diff --git a/fusarium/__init__.py b/fusarium/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/fusarium/__init__.py
+++ b/fusarium/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/fusarium/admin.py b/fusarium/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/fusarium/admin.py
+++ b/fusarium/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/fusarium/migrations/__init__.py b/fusarium/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/fusarium/migrations/__init__.py
+++ b/fusarium/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/fusarium/models.py b/fusarium/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100755
--- a/fusarium/models.py
+++ b/fusarium/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/fusarium/static/fusarium/js/oatFloweringModelForm.js b/fusarium/static/fusarium/js/oatFloweringModelForm.js
index fdf05ec7c5284b526482615e9333e6af2de389e9..c2be1a8c510ed569433a98307be873e35485fb8b 100755
--- a/fusarium/static/fusarium/js/oatFloweringModelForm.js
+++ b/fusarium/static/fusarium/js/oatFloweringModelForm.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the 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.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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 VIPSWeb.  If not, see <http://www.gnu.org/licenses/>.
- * 
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
  */
 /**
  * Self-serving application that calculates flowering period for oat.
diff --git a/fusarium/tests.py b/fusarium/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/fusarium/tests.py
+++ b/fusarium/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/fusarium/urls.py b/fusarium/urls.py
index 9fb1f77f68c7553c518ba04bc2e8512e632b1345..7f2e24fceb8667a6bf9ee912f3479953b3676cf7 100755
--- a/fusarium/urls.py
+++ b/fusarium/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 from fusarium import views
diff --git a/fusarium/views.py b/fusarium/views.py
index 35d201f965d2ccf9279dc842a7353a7b368549c3..2b828d279fe474501b2cbe6838bd98eeda8170f0 100755
--- a/fusarium/views.py
+++ b/fusarium/views.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.shortcuts import render
 
 # Create your views here.
diff --git a/information/__init__.py b/information/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/information/__init__.py
+++ b/information/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/information/admin.py b/information/admin.py
index 17493e564fe79e2520962fa12811ad57b9f1600c..926c8dad9b0eec3e2116fe93df2712b1e19659f6 100755
--- a/information/admin.py
+++ b/information/admin.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 
 from django.contrib import admin
diff --git a/information/migrations/__init__.py b/information/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/information/migrations/__init__.py
+++ b/information/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/information/models.py b/information/models.py
index 1911f446918a8b466d6cd48c126bb53b41220115..f0e0324578609ee38b4e8a15cc875ae62e503653 100755
--- a/information/models.py
+++ b/information/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.utils.translation import gettext as _
 from django.db import models
 from tinymce import models as tinymce_models
diff --git a/information/tests.py b/information/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/information/tests.py
+++ b/information/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/information/urls.py b/information/urls.py
index c13d2d73615216771a0bd2aaf81741523ec3d767..bf1a63c2a31cb909ee729f1c11ad69b5e9ae632e 100755
--- a/information/urls.py
+++ b/information/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 from information import views
diff --git a/information/views.py b/information/views.py
index c330d5ef754376c15f8fefb25f974384dcfa3c6c..c3c0d57b0e4990da1637aac683e011c6af93952f 100755
--- a/information/views.py
+++ b/information/views.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.shortcuts import render
 from django.core.exceptions import ObjectDoesNotExist
diff --git a/ipmd/__init__.py b/ipmd/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100644
--- a/ipmd/__init__.py
+++ b/ipmd/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/ipmd/admin.py b/ipmd/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100644
--- a/ipmd/admin.py
+++ b/ipmd/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/ipmd/apps.py b/ipmd/apps.py
index a56463fc5eee2c0ef41757642b2e8e989138e104..72efff685e43b1c5927756141dddf290eb29f252 100644
--- a/ipmd/apps.py
+++ b/ipmd/apps.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.apps import AppConfig
 
 
diff --git a/ipmd/migrations/__init__.py b/ipmd/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100644
--- a/ipmd/migrations/__init__.py
+++ b/ipmd/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/ipmd/models.py b/ipmd/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100644
--- a/ipmd/models.py
+++ b/ipmd/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/ipmd/static/ipmd/js/ipmdlib.js b/ipmd/static/ipmd/js/ipmdlib.js
index 0963a9eb4fd98f14aae37a5756a10dbe1561c4fe..3445c6d70a5cf0626e96b4782afdd3164f1498f3 100644
--- a/ipmd/static/ipmd/js/ipmdlib.js
+++ b/ipmd/static/ipmd/js/ipmdlib.js
@@ -1,20 +1,22 @@
-/* 
- * Copyright (c) 2023 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSLogic is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+/*
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/ipmd/tests.py b/ipmd/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100644
--- a/ipmd/tests.py
+++ b/ipmd/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/ipmd/urls.py b/ipmd/urls.py
index f076576d0af1a217592b2cfe4d0aa935b34e70c2..cf4a473ddc69b6cb559ec23aa2cf01bc8b15ef24 100755
--- a/ipmd/urls.py
+++ b/ipmd/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2023 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 from ipmd import views
diff --git a/ipmd/views.py b/ipmd/views.py
index 8f147afb1e7c08c34243d1d064549172b45ef64f..b47d27a8326b23b69706771e973a4768400f9559 100644
--- a/ipmd/views.py
+++ b/ipmd/views.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.shortcuts import render
 
 # Create your views here.
diff --git a/manage.py b/manage.py
index a549fe986d0cfb91436bebbd276c1101ccf44347..325a77cfc2b846e362679de38383dc4451851eb5 100755
--- a/manage.py
+++ b/manage.py
@@ -1,4 +1,24 @@
 #!/usr/bin/env python
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 import os
 import sys
 
diff --git a/mock/__init__.py b/mock/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/mock/__init__.py
+++ b/mock/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/mock/admin.py b/mock/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/mock/admin.py
+++ b/mock/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/mock/migrations/__init__.py b/mock/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/mock/migrations/__init__.py
+++ b/mock/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/mock/models.py b/mock/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100755
--- a/mock/models.py
+++ b/mock/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/mock/tests.py b/mock/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/mock/tests.py
+++ b/mock/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/mock/urls.py b/mock/urls.py
index c30c0dd0f53185d7d1aee1b8906a19f3d05557a2..ce2540d08cfc5630263b54e83700585729332edd 100644
--- a/mock/urls.py
+++ b/mock/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 from mock import views
diff --git a/mock/views.py b/mock/views.py
index 9987ce40b7e79a54e6bf7794148b01baf9d72d45..55070209a7ee5a66b413e55d5b229b6428fc928b 100755
--- a/mock/views.py
+++ b/mock/views.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.shortcuts import render
 
 # Create your views here.
diff --git a/observations/__init__.py b/observations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/observations/__init__.py
+++ b/observations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/observations/admin.py b/observations/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/observations/admin.py
+++ b/observations/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/observations/forms.py b/observations/forms.py
index 2b8c8a02315043c06437c2a1f26019b954d8f7ae..3f012fffd8f2b206282807de29917c0cd773174f 100644
--- a/observations/forms.py
+++ b/observations/forms.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django import forms
 
 class ObservationTimeFilterForm(forms.Form):
diff --git a/observations/migrations/__init__.py b/observations/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/observations/migrations/__init__.py
+++ b/observations/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/observations/models.py b/observations/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100755
--- a/observations/models.py
+++ b/observations/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/observations/static/observations/js/observationList.js b/observations/static/observations/js/observationList.js
index 44e06cdb98bb3dfdc132fa9e9b5a7913c85efd73..3a6ed604a732565a09771b8b043b0957384f718c 100644
--- a/observations/static/observations/js/observationList.js
+++ b/observations/static/observations/js/observationList.js
@@ -1,20 +1,22 @@
-/* 
- * Copyright (c) 2018 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSLogic is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+/*
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 var allObservations = []; // Populated asynchronously
 var drawnFeatures = []; // Populated asynchronously
diff --git a/observations/static/observations/js/observationViewMap.js b/observations/static/observations/js/observationViewMap.js
index b309dcc3e2c37edaa30f9de1d429c469c1ad2653..2e129dc0d6cbe35e87548a0e4e5c85fe3e3229d4 100755
--- a/observations/static/observations/js/observationViewMap.js
+++ b/observations/static/observations/js/observationViewMap.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 // Couple of global elements
diff --git a/observations/tests.py b/observations/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/observations/tests.py
+++ b/observations/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/observations/urls.py b/observations/urls.py
index 09e94d6fc4de20141c21e7fc16c5f04a0c1c706a..0f75f017609c5a9b3844f67a759b656444156451 100755
--- a/observations/urls.py
+++ b/observations/urls.py
@@ -1,21 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
-#from django.conf.urls import url
 from django.urls import re_path
 #from django.views.decorators.cache import cache_page
 
diff --git a/observations/views.py b/observations/views.py
index 56d52329e2a2281777602497f208b5da6cee29c9..94caa4442f660865d9d69296ce1ccc97d3abc021 100755
--- a/observations/views.py
+++ b/observations/views.py
@@ -1,22 +1,24 @@
 # -*- coding: UTF-8 -*-
 #
-# Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
 #
-# @author: Tor-Einar Skog <tor-einar.skog@nibio.no> 
 
 from django.shortcuts import render
 from django.utils import translation
diff --git a/organisms/__init__.py b/organisms/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/organisms/__init__.py
+++ b/organisms/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/organisms/admin.py b/organisms/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/organisms/admin.py
+++ b/organisms/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/organisms/models.py b/organisms/models.py
index 9486a9931a4360c4d48e6f5a4b5af606eef3117b..54343a36962f8376aac410c4e93dd752cb414ef9 100755
--- a/organisms/models.py
+++ b/organisms/models.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 import requests
 from django.conf import settings
diff --git a/organisms/static/organisms/organismsUtil.js b/organisms/static/organisms/organismsUtil.js
index 3b67ff91b1bdf4bb2642cadad74bb2bf4e9ee94a..de5f539554c0416d8468f7e111e7def9534eb2ad 100755
--- a/organisms/static/organisms/organismsUtil.js
+++ b/organisms/static/organisms/organismsUtil.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/organisms/tests.py b/organisms/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/organisms/tests.py
+++ b/organisms/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/organisms/urls.py b/organisms/urls.py
index b597deb886cc0205166f4086ea661056aca62731..fe90be6e08f25f67e341725f27ae6b7ae35c30b1 100755
--- a/organisms/urls.py
+++ b/organisms/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 
diff --git a/organisms/views.py b/organisms/views.py
index f46d30bc564eb914cb17571fe54e2d2d0d9255bf..2529f88d48ded8fad163a093337dc1b8ea2d766a 100755
--- a/organisms/views.py
+++ b/organisms/views.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.shortcuts import render, get_object_or_404
 
diff --git a/roughage/__init__.py b/roughage/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/roughage/__init__.py
+++ b/roughage/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/roughage/admin.py b/roughage/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/roughage/admin.py
+++ b/roughage/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/roughage/migrations/__init__.py b/roughage/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/roughage/migrations/__init__.py
+++ b/roughage/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/roughage/models.py b/roughage/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100755
--- a/roughage/models.py
+++ b/roughage/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/roughage/static/roughage/js/nutrition.js b/roughage/static/roughage/js/nutrition.js
index b24922462ba0c1947efedf3e22ac3f5440a71fc6..00e6ca511d3b755eb840c5e5c54719945187438f 100755
--- a/roughage/static/roughage/js/nutrition.js
+++ b/roughage/static/roughage/js/nutrition.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 
diff --git a/roughage/tests.py b/roughage/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/roughage/tests.py
+++ b/roughage/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/roughage/urls.py b/roughage/urls.py
index d5b771515ca2f0b21ea190945c3cf21a2b884150..49b249bae994c56f96b17da2a70dd3df21c1984c 100755
--- a/roughage/urls.py
+++ b/roughage/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 
diff --git a/roughage/views.py b/roughage/views.py
index 82676eb3b60ca4ec1c47aa4c5cd667afd4accc84..28c04af3a81c0930ac76b2d544cd72dc424c4b6d 100755
--- a/roughage/views.py
+++ b/roughage/views.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 from django.shortcuts import render
 
 # Create your views here.
diff --git a/security/__init__.py b/security/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/security/__init__.py
+++ b/security/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/security/admin.py b/security/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100755
--- a/security/admin.py
+++ b/security/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/security/middleware/__init__.py b/security/middleware/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/security/middleware/__init__.py
+++ b/security/middleware/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/security/middleware/check_login_middleware.py b/security/middleware/check_login_middleware.py
index e8c856a77b16d8181f52d6da8543cb0042686b20..e08f2c3885d3603810119ece7f1f271e4cdc8f04 100755
--- a/security/middleware/check_login_middleware.py
+++ b/security/middleware/check_login_middleware.py
@@ -1,21 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
-# @author: Tor-Einar Skog <tor-einar.skog@nibio.no>
 
 from security.models import VipsLogicUser
 from django.conf import settings
diff --git a/security/migrations/__init__.py b/security/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/security/migrations/__init__.py
+++ b/security/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/security/models.py b/security/models.py
index e3d365a130663af8cc853142088478af7d1167c6..6ae2fcf3c032b8d8bfc8d31be419604d308f7bac 100755
--- a/security/models.py
+++ b/security/models.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 #from django.db import models
 from django.conf import settings
diff --git a/security/static/security/js/crossdomainstorage.js b/security/static/security/js/crossdomainstorage.js
index 2ac42b6ed4c31c87627bc9ce23fa886d05e9b77c..d02142a6059c085b0573ccfeb26f2184ad4facb7 100755
--- a/security/static/security/js/crossdomainstorage.js
+++ b/security/static/security/js/crossdomainstorage.js
@@ -1,7 +1,22 @@
 /*
- * Copyright 2010 Nicholas C. Zakas. All rights reserved.
- * BSD Licensed.
- * @deprecated Doesn't work with IE/Edge. Using check_login_middleware instead
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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/>.
+ *
  */
 function CrossDomainStorage(origin, path){
     this.origin = origin;
diff --git a/security/static/security/js/loginHandler.js b/security/static/security/js/loginHandler.js
index 31edf4e3f9efb6619ea01a66188d1ebf8d327af8..4bbb17151c3515e252f7e1279eaf389fa460ea3a 100755
--- a/security/static/security/js/loginHandler.js
+++ b/security/static/security/js/loginHandler.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 var loginFailed = null;
diff --git a/security/tests.py b/security/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100755
--- a/security/tests.py
+++ b/security/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/security/urls.py b/security/urls.py
index 88849498a7b6a84943824f0fceab6f264c900ad1..016cc51c1d50f03003974799823929bd1ceab7c9 100755
--- a/security/urls.py
+++ b/security/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 
diff --git a/security/views.py b/security/views.py
index 06983135d8d0d71526ea7b7eacf996b8977b300e..06c4216b9031cf3843ba27690e89db1d5321d693 100755
--- a/security/views.py
+++ b/security/views.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2015 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 #from django.shortcuts import render
 from django.http import JsonResponse, HttpResponseRedirect
diff --git a/spatial/__init__.py b/spatial/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100644
--- a/spatial/__init__.py
+++ b/spatial/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/spatial/admin.py b/spatial/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..ad4f682fd44d35dc3b50bf0befd25189e6db53a1 100644
--- a/spatial/admin.py
+++ b/spatial/admin.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.contrib import admin
 
 # Register your models here.
diff --git a/spatial/apps.py b/spatial/apps.py
index ebdfcc751bac3a4e6204439e3d0283a56fe12d38..6a7a424ee04a53fc3b93c8796e07703a454fd405 100644
--- a/spatial/apps.py
+++ b/spatial/apps.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.apps import AppConfig
 
 
diff --git a/spatial/locale/bg/LC_MESSAGES/django.po b/spatial/locale/bg/LC_MESSAGES/django.po
index d7598b8b7510ae9ab50e6c92ac79f28ee78552e4..6bd2f9f1039cdf0a4dcbc60fafc95697c2a8866d 100644
--- a/spatial/locale/bg/LC_MESSAGES/django.po
+++ b/spatial/locale/bg/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:31+0100\n"
+"POT-Creation-Date: 2023-12-20 10:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,20 +17,15 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: spatial/templates/spatial/gridmap.html:4
-#: spatial/templates/spatial/psilartemp.html:24
+
+#: templates/spatial/gridmap.html:4 templates/spatial/psilartemp.html:24
 msgid "Welcome"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:30
+#: templates/spatial/gridmap.html:34
 msgid "Current date"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:39
-msgid "Location details"
-msgstr ""
-
-#: spatial/templates/spatial/index.html:24
-#: spatial/templates/spatial/index.html:26
+#: templates/spatial/index.html:24 templates/spatial/index.html:26
 msgid "VIPS Spatial"
 msgstr ""
diff --git a/spatial/locale/bg/LC_MESSAGES/djangojs.po b/spatial/locale/bg/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..434167e5a5416e19f071c34fd6da83eb19554929
--- /dev/null
+++ b/spatial/locale/bg/LC_MESSAGES/djangojs.po
@@ -0,0 +1,51 @@
+# 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: 2023-12-21 10:13+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"
+
+#: static/spatial/js/gridmap.js:37
+msgid "WARNING_STATUS"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:446
+msgid "Map location"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:466
+msgid "Could not determine warning status"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:470
+msgid "No forecast available"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:471
+msgid "Missing data"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:472
+msgid "No risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:473
+msgid "Medium risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:474
+msgid "High risk of infection"
+msgstr ""
diff --git a/spatial/locale/bs/LC_MESSAGES/django.po b/spatial/locale/bs/LC_MESSAGES/django.po
index 6419bedecc5165c7d18b7bfcb19662ac92801b50..3d6ff1cfa2912157f8be9973ce0e98bebc477893 100644
--- a/spatial/locale/bs/LC_MESSAGES/django.po
+++ b/spatial/locale/bs/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:31+0100\n"
+"POT-Creation-Date: 2023-12-20 10:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,22 +16,17 @@ 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"
-#: spatial/templates/spatial/gridmap.html:4
-#: spatial/templates/spatial/psilartemp.html:24
+"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"
+
+#: templates/spatial/gridmap.html:4 templates/spatial/psilartemp.html:24
 msgid "Welcome"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:30
+#: templates/spatial/gridmap.html:34
 msgid "Current date"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:39
-msgid "Location details"
-msgstr ""
-
-#: spatial/templates/spatial/index.html:24
-#: spatial/templates/spatial/index.html:26
+#: templates/spatial/index.html:24 templates/spatial/index.html:26
 msgid "VIPS Spatial"
 msgstr ""
diff --git a/spatial/locale/bs/LC_MESSAGES/djangojs.po b/spatial/locale/bs/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..98efe72c458477c9707a8e9cddde4b95a5677c35
--- /dev/null
+++ b/spatial/locale/bs/LC_MESSAGES/djangojs.po
@@ -0,0 +1,52 @@
+# 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: 2023-12-21 10:13+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"
+
+#: static/spatial/js/gridmap.js:37
+msgid "WARNING_STATUS"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:446
+msgid "Map location"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:466
+msgid "Could not determine warning status"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:470
+msgid "No forecast available"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:471
+msgid "Missing data"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:472
+msgid "No risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:473
+msgid "Medium risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:474
+msgid "High risk of infection"
+msgstr ""
diff --git a/spatial/locale/de/LC_MESSAGES/django.po b/spatial/locale/de/LC_MESSAGES/django.po
index d7598b8b7510ae9ab50e6c92ac79f28ee78552e4..6bd2f9f1039cdf0a4dcbc60fafc95697c2a8866d 100644
--- a/spatial/locale/de/LC_MESSAGES/django.po
+++ b/spatial/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:31+0100\n"
+"POT-Creation-Date: 2023-12-20 10:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,20 +17,15 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: spatial/templates/spatial/gridmap.html:4
-#: spatial/templates/spatial/psilartemp.html:24
+
+#: templates/spatial/gridmap.html:4 templates/spatial/psilartemp.html:24
 msgid "Welcome"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:30
+#: templates/spatial/gridmap.html:34
 msgid "Current date"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:39
-msgid "Location details"
-msgstr ""
-
-#: spatial/templates/spatial/index.html:24
-#: spatial/templates/spatial/index.html:26
+#: templates/spatial/index.html:24 templates/spatial/index.html:26
 msgid "VIPS Spatial"
 msgstr ""
diff --git a/spatial/locale/de/LC_MESSAGES/djangojs.po b/spatial/locale/de/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..434167e5a5416e19f071c34fd6da83eb19554929
--- /dev/null
+++ b/spatial/locale/de/LC_MESSAGES/djangojs.po
@@ -0,0 +1,51 @@
+# 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: 2023-12-21 10:13+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"
+
+#: static/spatial/js/gridmap.js:37
+msgid "WARNING_STATUS"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:446
+msgid "Map location"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:466
+msgid "Could not determine warning status"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:470
+msgid "No forecast available"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:471
+msgid "Missing data"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:472
+msgid "No risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:473
+msgid "Medium risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:474
+msgid "High risk of infection"
+msgstr ""
diff --git a/spatial/locale/en/LC_MESSAGES/djangojs.po b/spatial/locale/en/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..a805c8480b9ecb610fd9d9866d89ed9f65d8a507
--- /dev/null
+++ b/spatial/locale/en/LC_MESSAGES/djangojs.po
@@ -0,0 +1,50 @@
+# 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: 2023-12-21 10:14+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"
+#: static/spatial/js/gridmap.js:37
+msgid "WARNING_STATUS"
+msgstr "Warning status"
+
+#: static/spatial/js/gridmap.js:446
+msgid "Map location"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:466
+msgid "Could not determine warning status"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:470
+msgid "No forecast available"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:471
+msgid "Missing data"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:472
+msgid "No risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:473
+msgid "Medium risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:474
+msgid "High risk of infection"
+msgstr ""
diff --git a/spatial/locale/fi/LC_MESSAGES/django.po b/spatial/locale/fi/LC_MESSAGES/django.po
index d7598b8b7510ae9ab50e6c92ac79f28ee78552e4..6bd2f9f1039cdf0a4dcbc60fafc95697c2a8866d 100644
--- a/spatial/locale/fi/LC_MESSAGES/django.po
+++ b/spatial/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:31+0100\n"
+"POT-Creation-Date: 2023-12-20 10:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,20 +17,15 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: spatial/templates/spatial/gridmap.html:4
-#: spatial/templates/spatial/psilartemp.html:24
+
+#: templates/spatial/gridmap.html:4 templates/spatial/psilartemp.html:24
 msgid "Welcome"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:30
+#: templates/spatial/gridmap.html:34
 msgid "Current date"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:39
-msgid "Location details"
-msgstr ""
-
-#: spatial/templates/spatial/index.html:24
-#: spatial/templates/spatial/index.html:26
+#: templates/spatial/index.html:24 templates/spatial/index.html:26
 msgid "VIPS Spatial"
 msgstr ""
diff --git a/spatial/locale/fi/LC_MESSAGES/djangojs.po b/spatial/locale/fi/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..434167e5a5416e19f071c34fd6da83eb19554929
--- /dev/null
+++ b/spatial/locale/fi/LC_MESSAGES/djangojs.po
@@ -0,0 +1,51 @@
+# 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: 2023-12-21 10:13+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"
+
+#: static/spatial/js/gridmap.js:37
+msgid "WARNING_STATUS"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:446
+msgid "Map location"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:466
+msgid "Could not determine warning status"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:470
+msgid "No forecast available"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:471
+msgid "Missing data"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:472
+msgid "No risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:473
+msgid "Medium risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:474
+msgid "High risk of infection"
+msgstr ""
diff --git a/spatial/locale/nb/LC_MESSAGES/django.po b/spatial/locale/nb/LC_MESSAGES/django.po
index b6a8422056dd0c47b50764a765721c00869ad4e2..17c4f53f2d025d0aab94caf24b88f9e56eb3275e 100644
--- a/spatial/locale/nb/LC_MESSAGES/django.po
+++ b/spatial/locale/nb/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:31+0100\n"
+"POT-Creation-Date: 2023-12-20 10:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,20 +18,17 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: spatial/templates/spatial/gridmap.html:4
-#: spatial/templates/spatial/psilartemp.html:24
+#: templates/spatial/gridmap.html:4 templates/spatial/psilartemp.html:24
 msgid "Welcome"
 msgstr "Velkommen"
 
-#: spatial/templates/spatial/gridmap.html:30
+#: templates/spatial/gridmap.html:34
 msgid "Current date"
 msgstr "Gjeldende dato"
 
-#: spatial/templates/spatial/gridmap.html:39
-msgid "Location details"
-msgstr "Detaljer for lokalitet"
-
-#: spatial/templates/spatial/index.html:24
-#: spatial/templates/spatial/index.html:26
+#: templates/spatial/index.html:24 templates/spatial/index.html:26
 msgid "VIPS Spatial"
 msgstr "VIPS-varsler i rutenett"
+
+#~ msgid "Location details"
+#~ msgstr "Detaljer for lokalitet"
diff --git a/spatial/locale/nb/LC_MESSAGES/djangojs.po b/spatial/locale/nb/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..802d3128408f22e30f7519a6b8ebf9fa84d21c09
--- /dev/null
+++ b/spatial/locale/nb/LC_MESSAGES/djangojs.po
@@ -0,0 +1,51 @@
+# 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-12-21 10:13+0100\n"
+"PO-Revision-Date: 2023-12-20 10:24+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.1\n"
+
+#: static/spatial/js/gridmap.js:37
+msgid "WARNING_STATUS"
+msgstr "Varselstatus"
+
+#: static/spatial/js/gridmap.js:446
+msgid "Map location"
+msgstr "Kartpunkt"
+
+#: static/spatial/js/gridmap.js:466
+msgid "Could not determine warning status"
+msgstr "Kunne ikke bestemme varselstatus"
+
+#: static/spatial/js/gridmap.js:470
+msgid "No forecast available"
+msgstr "Varsel ikke tilgjengelig"
+
+#: static/spatial/js/gridmap.js:471
+msgid "Missing data"
+msgstr "Data mangler"
+
+#: static/spatial/js/gridmap.js:472
+msgid "No risk of infection"
+msgstr "Ingen infeksjonsrisiko"
+
+#: static/spatial/js/gridmap.js:473
+msgid "Medium risk of infection"
+msgstr "Middels infeksjonsrisiko"
+
+#: static/spatial/js/gridmap.js:474
+msgid "High risk of infection"
+msgstr "Høy infeksjonsrisiko"
diff --git a/spatial/locale/vi/LC_MESSAGES/django.po b/spatial/locale/vi/LC_MESSAGES/django.po
index 90fa5f2b95673243c6eeaf3ea4d4c001c4526619..0bdc05a931fb377f96bfe2773d134e0e9cc82a76 100644
--- a/spatial/locale/vi/LC_MESSAGES/django.po
+++ b/spatial/locale/vi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:31+0100\n"
+"POT-Creation-Date: 2023-12-20 10:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,20 +17,15 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-#: spatial/templates/spatial/gridmap.html:4
-#: spatial/templates/spatial/psilartemp.html:24
+
+#: templates/spatial/gridmap.html:4 templates/spatial/psilartemp.html:24
 msgid "Welcome"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:30
+#: templates/spatial/gridmap.html:34
 msgid "Current date"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:39
-msgid "Location details"
-msgstr ""
-
-#: spatial/templates/spatial/index.html:24
-#: spatial/templates/spatial/index.html:26
+#: templates/spatial/index.html:24 templates/spatial/index.html:26
 msgid "VIPS Spatial"
 msgstr ""
diff --git a/spatial/locale/vi/LC_MESSAGES/djangojs.po b/spatial/locale/vi/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..35dbf0d4dd49c82b869021b8c2274ea4d323de21
--- /dev/null
+++ b/spatial/locale/vi/LC_MESSAGES/djangojs.po
@@ -0,0 +1,51 @@
+# 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: 2023-12-21 10:13+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"
+
+#: static/spatial/js/gridmap.js:37
+msgid "WARNING_STATUS"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:446
+msgid "Map location"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:466
+msgid "Could not determine warning status"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:470
+msgid "No forecast available"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:471
+msgid "Missing data"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:472
+msgid "No risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:473
+msgid "Medium risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:474
+msgid "High risk of infection"
+msgstr ""
diff --git a/spatial/locale/zh_Hans/LC_MESSAGES/django.po b/spatial/locale/zh_Hans/LC_MESSAGES/django.po
index 90fa5f2b95673243c6eeaf3ea4d4c001c4526619..0bdc05a931fb377f96bfe2773d134e0e9cc82a76 100644
--- a/spatial/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/spatial/locale/zh_Hans/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-11-22 16:31+0100\n"
+"POT-Creation-Date: 2023-12-20 10:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,20 +17,15 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-#: spatial/templates/spatial/gridmap.html:4
-#: spatial/templates/spatial/psilartemp.html:24
+
+#: templates/spatial/gridmap.html:4 templates/spatial/psilartemp.html:24
 msgid "Welcome"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:30
+#: templates/spatial/gridmap.html:34
 msgid "Current date"
 msgstr ""
 
-#: spatial/templates/spatial/gridmap.html:39
-msgid "Location details"
-msgstr ""
-
-#: spatial/templates/spatial/index.html:24
-#: spatial/templates/spatial/index.html:26
+#: templates/spatial/index.html:24 templates/spatial/index.html:26
 msgid "VIPS Spatial"
 msgstr ""
diff --git a/spatial/locale/zh_Hans/LC_MESSAGES/djangojs.po b/spatial/locale/zh_Hans/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000000000000000000000000000000000..35dbf0d4dd49c82b869021b8c2274ea4d323de21
--- /dev/null
+++ b/spatial/locale/zh_Hans/LC_MESSAGES/djangojs.po
@@ -0,0 +1,51 @@
+# 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: 2023-12-21 10:13+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"
+
+#: static/spatial/js/gridmap.js:37
+msgid "WARNING_STATUS"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:446
+msgid "Map location"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:466
+msgid "Could not determine warning status"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:470
+msgid "No forecast available"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:471
+msgid "Missing data"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:472
+msgid "No risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:473
+msgid "Medium risk of infection"
+msgstr ""
+
+#: static/spatial/js/gridmap.js:474
+msgid "High risk of infection"
+msgstr ""
diff --git a/spatial/migrations/__init__.py b/spatial/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100644
--- a/spatial/migrations/__init__.py
+++ b/spatial/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/spatial/models.py b/spatial/models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..c3f26f1ffe0fe2ebe715664d8a62e61a0cc6b9a4 100644
--- a/spatial/models.py
+++ b/spatial/models.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.db import models
 
 # Create your models here.
diff --git a/spatial/static/spatial/js/gridmap.js b/spatial/static/spatial/js/gridmap.js
index af98bdc772a000f6afdd5e48b4fd9800403ad536..21feeaaa988601b88c8795af40d76ce66d22b241 100644
--- a/spatial/static/spatial/js/gridmap.js
+++ b/spatial/static/spatial/js/gridmap.js
@@ -1,3 +1,24 @@
+/*
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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/>.
+ *
+ */
+
 // TODO: Handle most/all EPSG codes 
 proj4.defs(
     'EPSG:25833',
@@ -13,10 +34,15 @@ let todayLayerIndex = undefined;
 let timestamps = undefined;
 let currentParameter = "WARNING_STATUS";
 let parameters = [currentParameter];
+let parameterLabels = {"WARNING_STATUS": gettext("WARNING_STATUS")};
 let WMSLayersDateBucket = {};
 let map = undefined;
 let popup = undefined;
 
+/**
+ * Handles moving forwards/backwards in time for the current layer type (Warning status, day degrees etc)
+ * @param {Integer} dayIndex the index in the time array (0 = first day in time series)
+ */
 async function switchLayer(dayIndex)
 {
     currentTimestamp = timestamps[dayIndex];
@@ -31,7 +57,7 @@ async function switchLayer(dayIndex)
             // See if there is a language specific legend available
             if(currentLayer.Abstract != undefined)
             {
-                document.getElementById("layerLegend").innerHTML=currentLayer.Abstract;
+                document.getElementById("layerLegend").innerHTML= getLegendHTML(currentLayer.Abstract);
             }
             else // Fallback to auto generated legend
             {
@@ -42,11 +68,71 @@ async function switchLayer(dayIndex)
     setCurrentDate(dayIndex);
 }
 
+
+/**
+ * Build Legend HTML from Json data, for example:
+ {
+  "isWarningStatus": true,
+  "legendItems": [
+    {
+      "classification": 0,
+      "legendLabel": "Flight period ended",
+      "legendIconCSS": "display: inline-block; background-color: #707070;"
+    },
+    {
+      "classification": 2,
+      "legendLabel": "Flight period not started",
+      "legendIconCSS": "display: inline-block; background-color: #00B457;"
+    },
+    {
+      "classification": 3,
+      "legendLabel": "Flight period starting",
+      "legendIconCSS": "display: inline-block; background-color: #FFCC00;"
+    },
+    {
+      "classification": 4,
+      "legendLabel": "Peak flight activity",
+      "legendIconCSS": "display: inline-block; background-color: #FF0000;"
+    }
+  ]
+}
+ * @param {String} jsonDataStr (could be other, e.g. HTML)
+ * @returns {String} HTML to render as a legend
+ */
+function getLegendHTML(jsonDataStr)
+{
+    try
+    {
+        let jsonData = JSON.parse(jsonDataStr);
+        // Using Template literals (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)
+        let legendHTML = `<ul style="list-style: none; padding: 0;">`;
+        for(var i=0;i<jsonData.legendItems.length; i++)
+        {
+            legendHTML += `<li style="margin-bottom: 5px;"><span style="display: inline-block; ${jsonData.legendItems[i].legendIconCSS}">&nbsp;&nbsp;&nbsp;</span> ${jsonData.legendItems[i].legendLabel}</li>`;
+        }
+        legendHTML += `<ul>`;
+        return legendHTML;    
+    }
+    catch(e)
+    {
+        // Don't know what to do with the string, return as-is
+        return jsonDataStr;
+    }
+}
+
+/**
+ * Given the timeseries index, figure out which date it is and display in the time slider
+ * @param {Integer} layerIndex 
+ */
 function setCurrentDate(layerIndex)
 {
     document.getElementById("currentDate").innerHTML=moment(parseInt(timestamps[layerIndex])).format("YYYY-MM-DD");
 }
 
+/**
+ * 
+ * @returns The OpenLayers object for the currently visible layer
+ */
 function getCurrentVisibleOLLayer()
 {
     // The WMS layer returned from mapserver is found
@@ -74,7 +160,11 @@ function getLayersForCurrentTimestamp()
 
 }
 
-
+/**
+ * Loads map and data, and sets up the initial view of the map
+ * @param {*} inputModelId model Id, e.g. PSILARTEMP
+ * @param {*} mapAttribution background map source information (displayed in the map)
+ */
 async function initGridMap(inputModelId, mapAttribution) {
     modelId = inputModelId;
     var backgroundLayer = new ol.layer.Tile({
@@ -93,19 +183,29 @@ async function initGridMap(inputModelId, mapAttribution) {
     let response = await fetch(mapserverURL + modelId + "?service=WMS&version=1.3.0&request=GetCapabilities&language=" + settings.currentLanguage);
     //console.info(response.status); // Response is 200 even if a model doesn't exist on the mapserver
     let txt = await response.text();
-    /*
-<HTML>
-<HEAD><TITLE>MapServer Message</TITLE></HEAD>
-<!-- MapServer version 7.6.4 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=POINT_Z_M SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
-<BODY BGCOLOR="#FFFFFF">
-msLoadMap(): Unable to access file. (/disks/data01/mapserver/wms/SEPTREFFUM/SEPTREFFUM.map) <=== Security issue on the mapserver!!!
-</BODY></HTML>
-    */
+    
     //console.info(txt);
     let capabilities = parser.read(txt);
     let WMSLayers = capabilities.Capability.Layer.Layer;
     document.getElementById("modelTitle").innerHTML = capabilities.Service.Title;
-    document.getElementById("modelAbstract").innerHTML = capabilities.Service.Abstract.replaceAll("\n\n","XXX");
+    if(capabilities.Service.Abstract != undefined)
+    {
+        // Placing the sections above/below the map
+        let el = new DOMParser().parseFromString(capabilities.Service.Abstract.replaceAll("\n\n",""),"text/html");
+        let preamble = el.getElementById("preamble") != null ? el.getElementById("preamble") : el;
+        document.getElementById("modelAbstractPreamble").innerHTML = new XMLSerializer().serializeToString(preamble);
+        let body = el.getElementById("body") != null ? el.getElementById("body") : null;
+        if(body != null)
+        {
+            document.getElementById("modelAbstractBody").innerHTML = new XMLSerializer().serializeToString(body);
+        }
+        // Get the parameter explanations
+        let props = el.querySelectorAll("[itemprop]");
+        for(var i=0;i<props.length;i++)
+        {
+            parameterLabels[props[i].getAttribute("itemprop")]=props[i].textContent;
+        }
+    }
     //console.info(capabilities);
 
     // Analyze and organize layers
@@ -256,7 +356,7 @@ msLoadMap(): Unable to access file. (/disks/data01/mapserver/wms/SEPTREFFUM/SEPT
     let radioHTML = "";
     for(let i=0;i<parameters.length;i++)
     {
-        radioHTML += '<div class="radio"><label><input type="radio" name="parameter" value="' + parameters[i] + '"' + (parameters[i] == currentParameter ? "checked" : "") + ' onclick="switchParameter(this.value);"/>' + parameters[i] + '</label></div>';
+        radioHTML += '<div class="radio"><label><input type="radio" name="parameter" value="' + parameters[i] + '"' + (parameters[i] == currentParameter ? "checked" : "") + ' onclick="switchParameter(this.value);"/>' + (parameterLabels[parameters[i]] != undefined ? capitalizeFirstLetter(parameterLabels[parameters[i]]) : parameters[i]) + '</label></div>';
     }
     
     document.getElementById("paramselector").innerHTML = radioHTML;
@@ -276,6 +376,7 @@ async function displayQueryResult(evt)
     
     
     let currentWMSLayer = WMSLayersDateBucket[currentTimestamp][currentParameter];
+    let currentWarningStatusLayer = WMSLayersDateBucket[currentTimestamp]["WARNING_STATUS"];
 
     // Need to get all layers for today, and combine results from querying all layers
     let layersForCurrentTimestamp = getLayersForCurrentTimestamp();
@@ -326,28 +427,65 @@ async function displayQueryResult(evt)
         return;
     }
 
-    let warningStatusTitle =  warningStatus == 0 ? gettext("No forecast available")
-                            : warningStatus == 1 ? gettext("Missing data")
-                            : warningStatus == 2 ? gettext("No risk of infection")
-                            : warningStatus == 3 ? gettext("Medium risk of infection")
-                            : warningStatus == 4 ? gettext("High risk of infection") : "";
-
     let paramHTML = "<ul>";
     paramCodes = Object.keys(parameters);
     for(let i=0;i<paramCodes.length;i++)
     {
-        paramHTML += "<li>" + paramCodes[i] + " = " + parameters[paramCodes[i]] + "</li>"
+        paramHTML += "<li>" + (parameterLabels[paramCodes[i]] != undefined ? capitalizeFirstLetter(parameterLabels[paramCodes[i]]) + " (" + paramCodes[i] + ")" : paramCodes[i]) + " = " + parameters[paramCodes[i]] + "</li>"
     }
     paramHTML += "</ul>";
 
     // Render results
     popup.setPosition(evt.coordinate);
+    let wgs84Coordinate = proj4(map.getView().getProjection().getCode(), "EPSG:4326", evt.coordinate)
     $(popupElement).popover({
         'placement': 'top',
         'animation': false,
         'html': true,
-        'content': '<h4>' + warningStatusTitle + '</h4>' + paramHTML
+        'title': gettext("Map location") + ` [${wgs84Coordinate[1].toFixed(4)}, ${wgs84Coordinate[0].toFixed(4)}]`,
+        'content': '<h4>' + getWarningStatusTitle(currentWarningStatusLayer.Abstract, warningStatus) + '</h4>' + paramHTML
         });
         $(popupElement).popover('show');
 
+}
+
+function getWarningStatusTitle(jsonDataStr, warningStatus)
+{
+    try
+    {
+        let jsonData = JSON.parse(jsonDataStr);
+        for(let i=0; i<jsonData.legendItems.length; i++)
+        {
+            let legendItem = jsonData.legendItems[i];
+            if(legendItem.classification == warningStatus)
+            {
+                return legendItem.legendLabel;
+            }
+        }
+        return gettext("Could not determine warning status");
+    }
+    catch(e)
+    {
+        return warningStatus == 0 ? gettext("No forecast available")
+        : warningStatus == 1 ? gettext("Missing data")
+        : warningStatus == 2 ? gettext("No risk of infection")
+        : warningStatus == 3 ? gettext("Medium risk of infection")
+        : warningStatus == 4 ? gettext("High risk of infection") : "";
+    }
+}
+
+/**
+ * Programmatically move the slider back and forth
+ * Used by the arrow buttons (onclick event) on each side of the slider
+ * @param {Integer} step 
+ */
+function moveDateSlider(step)
+{
+    let slider=document.getElementById("layerDateRange");
+    let min = parseInt(slider.min); 
+    let max = parseInt(slider.max);
+    let newValue = parseInt(slider.value) + step;
+    newValue = newValue > max ? max : newValue < min ? min : newValue;
+    slider.value=newValue;
+    slider.onchange();
 }
\ No newline at end of file
diff --git a/spatial/static/spatial/js/spatialMap.js b/spatial/static/spatial/js/spatialMap.js
index 6338962d28353833a8bb1e01385058f610d6b373..b4aa7e7a00994baeb1a88009fb4b21dafd24a9d7 100644
--- a/spatial/static/spatial/js/spatialMap.js
+++ b/spatial/static/spatial/js/spatialMap.js
@@ -1,20 +1,22 @@
 /*
- * Copyright (c) 2018 NIBIO <http://www.nibio.no/>. 
- * 
- * This file is part of VIPSWeb.
- * VIPSWeb is free software: you can redistribute it and/or modify
- * it under the terms of the NIBIO Open Source License as published by 
- * NIBIO, either version 1 of the License, or (at your option) any
- * later version.
- * 
- * VIPSWeb is distributed in the hope that it will be useful,
+ * Copyright (c) 2013-2023 NIBIO.
+ *
+ * This file is part of VIPSWeb 
+ * (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+ *
+ * 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
- * NIBIO Open Source License for more details.
- * 
- * You should have received a copy of the NIBIO Open Source License
- * along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
- * 
+ * 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/>.
+ *
  */
 
 /**
diff --git a/spatial/templates/spatial/gridmap.html b/spatial/templates/spatial/gridmap.html
index c30d4764fedf92bfb646cac886328c7077ef942d..21307ada1ecfbb2f1ab5eb310956dfca43e63a47 100644
--- a/spatial/templates/spatial/gridmap.html
+++ b/spatial/templates/spatial/gridmap.html
@@ -24,22 +24,27 @@
 {% endblock %}
 
 {% block content %}
-		<!-- Start map container -->
-		<div class="col-md-12" id="mapContainer" style="position: relative; height: 800px;">
-            <div class="slidecontainer" style="position: absolute; left: 20px; bottom: 20px; background-color: white; z-index: 1000;padding: 15px; border-radius: 15px;">
-                {% trans "Current date" %}: <span id="currentDate"></span> <br/>
-                <input type="range" min="0" max="0" value="0" step="1" id="layerDateRange" onchange="switchLayer(parseInt(this.value));"><br/>
-            </div>
-			<div class="form-group" id="paramselector" style="position: absolute; right: 20px; bottom: 20px; background-color: white; z-index: 1000;padding: 15px; border-radius: 15px;">
-			</div>
-			<div id="layerLegend" style="position: absolute; right: 20px; top: 20px; background-color: white; z-index: 1000;padding: 15px; border-radius: 15px;">
-				
-			</div>
-        </div>
-		<div id="popup" title="{% trans "Location details" %}"></div>
-		<div class="col-md-12">
-			<h2 id="modelTitle"></h2>
-			<div id="modelAbstract"></div>
+	<div class="col-md-12">
+		<h2 id="modelTitle"></h2>
+		<div id="modelAbstractPreamble"></div>
+	</div>
+	<!-- Start map container -->
+	<div class="col-md-12" id="mapContainer" style="position: relative; height: 800px; padding-top: 15px; padding-bottom: 15px;">
+		<div class="slidecontainer" style="position: absolute; left: 20px; bottom: 20px; background-color: white; z-index: 1000;padding: 15px; border-radius: 15px;">
+			{% trans "Current date" %}: <span id="currentDate"></span> <br/>
+			<button type="button" class="btn" onclick="moveDateSlider(-1);"><i class="fa fa-step-backward" aria-hidden="true"></i></button>
+			<input type="range" min="0" max="0" value="0" step="1" id="layerDateRange" onchange="switchLayer(parseInt(this.value));">
+			<button type="button" class="btn" onclick="moveDateSlider(1);"><i class="fa fa-step-forward" aria-hidden="true"></i></button>
 		</div>
+		<div class="form-group" id="paramselector" style="position: absolute; right: 20px; bottom: 20px; background-color: white; z-index: 1000;padding: 15px; border-radius: 15px;">
+		</div>
+		<div id="layerLegend" style="position: absolute; right: 20px; top: 20px; background-color: white; z-index: 1000;padding: 15px; border-radius: 15px;">
+			
+		</div>
+	</div>
+	<div id="popup" title=""></div>
+	<div class="col-md-12">
+		<div id="modelAbstractBody"></div>
+	</div>
        
 {% endblock %}
\ No newline at end of file
diff --git a/spatial/tests.py b/spatial/tests.py
index 7ce503c2dd97ba78597f6ff6e4393132753573f6..222e293f86b80e9507a1cf2ac4b3e806dac6b420 100644
--- a/spatial/tests.py
+++ b/spatial/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.test import TestCase
 
 # Create your tests here.
diff --git a/spatial/urls.py b/spatial/urls.py
index 63dd488dad9a53d166eae215451006753b5803eb..b5724f32cceff1b3cd2573036c81b1ca15696792 100644
--- a/spatial/urls.py
+++ b/spatial/urls.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.urls import re_path
 
 from spatial import views
diff --git a/spatial/views.py b/spatial/views.py
index 9b04a6b8bc6f11eba8c2e82b85be21f63cb51157..eea91a82abbfafcf3c08a5263b080c2beb45fec7 100644
--- a/spatial/views.py
+++ b/spatial/views.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.shortcuts import render, redirect
 from django.http import Http404
 from django.conf import settings
diff --git a/vips_messages/__init__.py b/vips_messages/__init__.py
index 0658db543a4ccd2225828dd6084faba1ee97eb46..f5fc01cf7ba6ebd58fb9d0b5bf45d81ca4d63ca5 100755
--- a/vips_messages/__init__.py
+++ b/vips_messages/__init__.py
@@ -1 +1,21 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 default_app_config = 'vips_messages.apps.VIPSMessagesConfig'
\ No newline at end of file
diff --git a/vips_messages/admin.py b/vips_messages/admin.py
index 4941afa9a3b8c71aad131691b4452bf99c32ce08..b695f2bdff744994ae6709bb6d8dd9c4e4b1e960 100755
--- a/vips_messages/admin.py
+++ b/vips_messages/admin.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.contrib import admin
 from vips_messages.models import Advertisement
diff --git a/vips_messages/apps.py b/vips_messages/apps.py
index 23e0313e280360642afc1faf0099a5cf884359ae..9c10a6a48654c2a0cf97f4b2210ac3e469744b24 100755
--- a/vips_messages/apps.py
+++ b/vips_messages/apps.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django.apps import AppConfig
 
 class VIPSMessagesConfig(AppConfig):
diff --git a/vips_messages/forms.py b/vips_messages/forms.py
index 995d3f43db8969730b968324778774b977da3025..9bb1d6d63f8c78b303ef1c53da8be37de789537a 100755
--- a/vips_messages/forms.py
+++ b/vips_messages/forms.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 from django import forms
 
 class MessagePublishedDateFilterForm(forms.Form):
diff --git a/vips_messages/migrations/__init__.py b/vips_messages/migrations/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2a8f9409f12ebd3de876407c7b7a28252a3952ad 100755
--- a/vips_messages/migrations/__init__.py
+++ b/vips_messages/migrations/__init__.py
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
diff --git a/vips_messages/models.py b/vips_messages/models.py
index f4724ace674d330d263953b5c0c3e3d5939b3ab1..7916ab2dab6c14a54f564c9c3b08228f6e441eb2 100755
--- a/vips_messages/models.py
+++ b/vips_messages/models.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 import requests
 from django.conf import settings
diff --git a/vips_messages/tests.py b/vips_messages/tests.py
index 501deb776c16733b19f3509d86e125df78958261..f4bac6527d0d6c6822d5477dbdf96c0f9c7071f4 100755
--- a/vips_messages/tests.py
+++ b/vips_messages/tests.py
@@ -1,3 +1,23 @@
+#
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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/>.
+#
+#
 """
 This file demonstrates writing tests using the unittest module. These will pass
 when you run "manage.py test".
diff --git a/vips_messages/urls.py b/vips_messages/urls.py
index 4a42a90ea5a07cb6523afc33f0220fa1c2f6dce1..fa4a7e6e457638d7922871f6ea9e348ceb9cf57a 100755
--- a/vips_messages/urls.py
+++ b/vips_messages/urls.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 from django.urls import re_path
 
diff --git a/vips_messages/views.py b/vips_messages/views.py
index 61d0e8b4686c17952c2a9d8173995fdf7bde7ad4..54e0d2e9441265b0b634a65825aa49f8d142f727 100755
--- a/vips_messages/views.py
+++ b/vips_messages/views.py
@@ -1,20 +1,23 @@
 #
-# Copyright (c) 2014 NIBIO <http://www.nibio.no/>. 
-# 
-# This file is part of VIPSWeb.
-# VIPSWeb is free software: you can redistribute it and/or modify
-# it under the terms of the NIBIO Open Source License as published by 
-# NIBIO, either version 1 of the License, or (at your option) any
-# later version.
-# 
-# VIPSWeb is distributed in the hope that it will be useful,
+# Copyright (c) 2013-2023 NIBIO.
+#
+# This file is part of VIPSWeb 
+# (see https://gitlab.nibio.no/VIPS/VIPSWeb).
+#
+# 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
-# NIBIO Open Source License for more details.
+# 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/>.
+#
 #
-# You should have received a copy of the NIBIO Open Source License
-# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
-# 
 
 import json