diff --git a/aleksis/apps/alsijil/migrations/0001_initial.py b/aleksis/apps/alsijil/migrations/0001_initial.py
index e49edfac8a4cdb1f2684c3f2667d3e1ef18de003..cccc24374688a413fa5fc8cca5325a3aa3e0ff98 100644
--- a/aleksis/apps/alsijil/migrations/0001_initial.py
+++ b/aleksis/apps/alsijil/migrations/0001_initial.py
@@ -1,9 +1,10 @@
 # Generated by Django 3.0.6 on 2020-05-29 10:29
 
-import django.contrib.sites.managers
 import django.db.models.deletion
 from django.db import migrations, models
 
+import aleksis.core.managers
+
 import aleksis.apps.alsijil.models
 
 
@@ -75,7 +76,7 @@ class Migration(migrations.Migration):
                 "verbose_name_plural": "Personal note filters",
                 "ordering": ["identifier"],
             },
-            managers=[("objects", django.contrib.sites.managers.CurrentSiteManager()),],
+            managers=[("objects", aleksis.core.managers.AlekSISBaseManager()),],
         ),
         migrations.CreateModel(
             name="PersonalNote",
diff --git a/aleksis/apps/alsijil/migrations/0002_excuse_type.py b/aleksis/apps/alsijil/migrations/0002_excuse_type.py
index 395d2e323cb3396f434da5e0c3ebef768589331b..2f714d2cb9bd74326d60e2890e60f1c0d496bfa1 100644
--- a/aleksis/apps/alsijil/migrations/0002_excuse_type.py
+++ b/aleksis/apps/alsijil/migrations/0002_excuse_type.py
@@ -1,9 +1,10 @@
 # Generated by Django 3.0.8 on 2020-07-10 10:46
 
-import django.contrib.sites.managers
 import django.db.models.deletion
 from django.db import migrations, models
 
+import aleksis.core.managers
+
 
 class Migration(migrations.Migration):
 
@@ -56,7 +57,7 @@ class Migration(migrations.Migration):
                 "verbose_name_plural": "Excuse types",
                 "ordering": ["name"],
             },
-            managers=[("objects", django.contrib.sites.managers.CurrentSiteManager()),],
+            managers=[("objects", aleksis.core.managers.AlekSISBaseManager()),],
         ),
         migrations.AddField(
             model_name="personalnote",
diff --git a/aleksis/apps/alsijil/migrations/0003_extra_mark.py b/aleksis/apps/alsijil/migrations/0003_extra_mark.py
index e0da8d97ef6b5ec1b1e45f9e6e6f976864907626..efa1cc94974ed05b8917db69665281e9e9a30462 100644
--- a/aleksis/apps/alsijil/migrations/0003_extra_mark.py
+++ b/aleksis/apps/alsijil/migrations/0003_extra_mark.py
@@ -1,9 +1,10 @@
 # Generated by Django 3.0.8 on 2020-07-12 12:43
 
-import django.contrib.sites.managers
 import django.db.models.deletion
 from django.db import migrations, models
 
+import aleksis.core.managers
+
 
 class Migration(migrations.Migration):
 
@@ -56,7 +57,7 @@ class Migration(migrations.Migration):
                 "verbose_name_plural": "Extra marks",
                 "ordering": ["short_name"],
             },
-            managers=[("objects", django.contrib.sites.managers.CurrentSiteManager()),],
+            managers=[("objects", aleksis.core.managers.AlekSISBaseManager()),],
         ),
         migrations.AddField(
             model_name="personalnote",
diff --git a/aleksis/apps/alsijil/migrations/0008_global_permissions.py b/aleksis/apps/alsijil/migrations/0008_global_permissions.py
index a7d5ba1e39ef682dab13b242467621ebf8fd033d..bc4d56035d6acc92ce3610b038c042b2336e1654 100644
--- a/aleksis/apps/alsijil/migrations/0008_global_permissions.py
+++ b/aleksis/apps/alsijil/migrations/0008_global_permissions.py
@@ -1,8 +1,9 @@
 # Generated by Django 3.1.5 on 2021-01-21 14:55
 
-import django.contrib.sites.managers
 from django.db import migrations, models
 
+import aleksis.core.managers
+
 
 class Migration(migrations.Migration):
 
@@ -22,7 +23,7 @@ class Migration(migrations.Migration):
                 'managed': False,
             },
             managers=[
-                ('objects', django.contrib.sites.managers.CurrentSiteManager()),
+                ('objects', aleksis.core.managers.AlekSISBaseManager()),
             ],
         ),
     ]
diff --git a/aleksis/apps/alsijil/migrations/0018_add_managed_by_app_label.py b/aleksis/apps/alsijil/migrations/0018_add_managed_by_app_label.py
new file mode 100644
index 0000000000000000000000000000000000000000..0e6fc8269159466e0372e1bde21b57cc1164597a
--- /dev/null
+++ b/aleksis/apps/alsijil/migrations/0018_add_managed_by_app_label.py
@@ -0,0 +1,47 @@
+# Generated by Django 4.2.3 on 2023-07-27 14:08
+
+import aleksis.core.managers
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0052_site_related_name'),
+        ('sites', '0002_alter_domain_unique'),
+        ('alsijil', '0017_rename_late_to_tardiness'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='excusetype',
+            name='managed_by_app_label',
+            field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
+        ),
+        migrations.AddField(
+            model_name='extramark',
+            name='managed_by_app_label',
+            field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
+        ),
+        migrations.AddField(
+            model_name='grouprole',
+            name='managed_by_app_label',
+            field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
+        ),
+        migrations.AddField(
+            model_name='grouproleassignment',
+            name='managed_by_app_label',
+            field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
+        ),
+        migrations.AddField(
+            model_name='lessondocumentation',
+            name='managed_by_app_label',
+            field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
+        ),
+        migrations.AddField(
+            model_name='personalnote',
+            name='managed_by_app_label',
+            field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
+        ),
+    ]
diff --git a/pyproject.toml b/pyproject.toml
index 7472d80e44295737d87bb093b962dcc310c6f345..0600d3b1f2901a2d3f76e9c679080d5de087244f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "AlekSIS-App-Alsijil"
-version = "3.0.1.dev0"
+version = "4.0.dev0"
 packages = [
     { include = "aleksis" }
 ]
@@ -46,11 +46,12 @@ priority = "primary"
 name = "gitlab"
 url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
 priority = "supplemental"
+
 [tool.poetry.dependencies]
 python = "^3.10"
-aleksis-core = "^3.0"
-aleksis-app-chronos = "^3.0"
-aleksis-app-stoelindeling = { version = "^2.0", optional = true }
+aleksis-core = "^4.0.0.dev0"
+aleksis-app-chronos = "^4.0.dev0"
+aleksis-app-stoelindeling = { version = "^3.0.dev0", optional = true }
 
 [tool.poetry.extras]
 seatingplans = ["aleksis-app-stoelindeling"]