diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index f5804796033bc287e14d852c998fbb47a15a6925..008d39b3a06dcc27fef1f9d20ea18e595054d277 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -9,19 +9,22 @@ and this project adheres to `Semantic Versioning`_.
 Unreleased
 ----------
 
+`3.1.1` - 2023-07-01
+--------------------
+
 Fixed
 ~~~~~
 
 * Progress page didn't work properly.
 * About page failed to load for apps with an unknown licence.
-* Partial permission checking on the person query was fixed.
+* QUeries for persons with partial permissions failed.
 * Some pages couldn't be scrolled when a task progress popup was open.
 * Notification query failed on admin users without persons.
 * Querying for notification caused unnecessary database requests.
 * Loading bar didn't disappear on some pages after loading was finished.
 * Support newer versions of django-oauth-toolkit.
 
-`3.1`_ - 2022-05-30
+`3.1`_ - 2023-05-30
 -------------------
 
 Changed
@@ -41,7 +44,7 @@ Fixed
 * Polling behavior of the whoAmI and permission queries was improved.
 * Confirmation e-mail contained a wrong link.
 
-`3.0`_ - 2022-05-11
+`3.0`_ - 2023-05-11
 -------------------
 
 Added
@@ -84,7 +87,7 @@ Fixed
 * Backend cleanup task for Celery wasn't working.
 * URLs in invitation email were broken.
 * Invitation view didn't work.
-* Invitation emails were using wrong styling. 
+* Invitation emails were using wrong styling.
 * GraphQL queries and mutations did not log exceptions.
 
 `3.0b3`_ - 2023-03-19
@@ -1178,3 +1181,4 @@ Fixed
 .. _3.0b3: https://edugit.org/AlekSIS/official/AlekSIS-Core/-/tags/3.0b3
 .. _3.0: https://edugit.org/AlekSIS/official/AlekSIS-Core/-/tags/3.0
 .. _3.1: https://edugit.org/AlekSIS/official/AlekSIS-Core/-/tags/3.1
+.. _3.1.1: https://edugit.org/AlekSIS/official/AlekSIS-Core/-/tags/3.1.1
diff --git a/aleksis/core/frontend/components/notifications/NotificationList.vue b/aleksis/core/frontend/components/notifications/NotificationList.vue
index 08914210eefc7ecd2f52ea24342abf1d1467e5c9..09b27197e5d62c5a5f15f7836d5b741925d21cc8 100644
--- a/aleksis/core/frontend/components/notifications/NotificationList.vue
+++ b/aleksis/core/frontend/components/notifications/NotificationList.vue
@@ -88,7 +88,7 @@ export default {
   },
   computed: {
     unreadNotifications() {
-      return this.myNotifications.filter(n => !n.read);
+      return this.myNotifications.filter((n) => !n.read);
     },
   },
 };
diff --git a/docs/conf.py b/docs/conf.py
index 7d5706e4ab2a87ab9431f8ea7dcab000685cd0b4..919c2ec87fab03d7e7e6c7c982d695f76d559c43 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -25,13 +25,13 @@ django.setup()
 # -- Project information -----------------------------------------------------
 
 project = "AlekSIS-Core"
-copyright = "2019-2022 The AlekSIS team"
+copyright = "2019-2023 The AlekSIS team"
 author = "The AlekSIS Team"
 
 # The short X.Y version
 version = "3.1"
 # The full version, including alpha/beta/rc tags
-release = "3.1.1.dev0"
+release = "3.1.2.dev0"
 
 
 # -- General configuration ---------------------------------------------------
diff --git a/pyproject.toml b/pyproject.toml
index 4ff1cfd6305a818ba6cdf678fd07de0148e1702a..7280e24280a5b7e92cd94957965194ed491d1b1f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "AlekSIS-Core"
-version = "3.1.1.dev0"
+version = "3.1.2.dev0"
 packages = [
     { include = "aleksis" }
 ]
@@ -135,6 +135,7 @@ sentry = ["sentry-sdk"]
 
 [tool.poetry.dev-dependencies]
 aleksis-builddeps = {version=">=2023.1.dev0", allow-prereleases=true}
+selenium = "<4.10.0"
 uwsgi = "^2.0"
 
 [tool.poetry.scripts]