diff --git a/aleksis/apps/chronos/migrations/0015_managed_by_site.py b/aleksis/apps/chronos/migrations/0015_managed_by_site.py
new file mode 100644
index 0000000000000000000000000000000000000000..001528f86f0b981003a27b32558df0f25ea5f1e3
--- /dev/null
+++ b/aleksis/apps/chronos/migrations/0015_managed_by_site.py
@@ -0,0 +1,390 @@
+# Generated by Django 4.2.3 on 2023-07-31 08:21
+
+import aleksis.core.managers
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("sites", "0002_alter_domain_unique"),
+        ("chronos", "0014_lessonevent"),
+    ]
+
+    operations = [
+        migrations.AlterModelManagers(
+            name="absencereason",
+            managers=[
+                ("objects", aleksis.core.managers.AlekSISBaseManager()),
+            ],
+        ),
+        migrations.AlterModelManagers(
+            name="automaticplan",
+            managers=[],
+        ),
+        migrations.AlterModelManagers(
+            name="subject",
+            managers=[
+                ("objects", aleksis.core.managers.AlekSISBaseManager()),
+            ],
+        ),
+        migrations.AlterModelManagers(
+            name="supervisionarea",
+            managers=[
+                ("objects", aleksis.core.managers.AlekSISBaseManager()),
+            ],
+        ),
+        migrations.AddField(
+            model_name="absence",
+            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="absencereason",
+            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="break",
+            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="event",
+            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="exam",
+            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="extralesson",
+            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="holiday",
+            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="lesson",
+            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="lessonperiod",
+            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="lessonsubstitution",
+            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="subject",
+            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="supervision",
+            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="supervisionarea",
+            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="supervisionsubstitution",
+            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="timeperiod",
+            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="validityrange",
+            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.AlterField(
+            model_name="absence",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="absencereason",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="break",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="event",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="exam",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="extralesson",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="holiday",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="lesson",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="lessonperiod",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="lessonsubstitution",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="subject",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="supervision",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="supervisionarea",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="supervisionsubstitution",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="timeperiod",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="timeperiod",
+            name="weekday",
+            field=models.PositiveSmallIntegerField(
+                choices=[
+                    (0, "Monday"),
+                    (1, "Tuesday"),
+                    (2, "Wednesday"),
+                    (3, "Thursday"),
+                    (4, "Friday"),
+                    (5, "Saturday"),
+                    (6, "Sunday"),
+                ],
+                verbose_name="Week day",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="validityrange",
+            name="site",
+            field=models.ForeignKey(
+                default=1,
+                editable=False,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="+",
+                to="sites.site",
+            ),
+        ),
+    ]