diff --git a/aleksis/apps/chronos/migrations/0001_initial.py b/aleksis/apps/chronos/migrations/0001_initial.py
index 758f099cade786ea7cbab3cb6a4616847fa2c2d6..cf9aea3066896d3724d8f7757a00cb136f3ffc80 100644
--- a/aleksis/apps/chronos/migrations/0001_initial.py
+++ b/aleksis/apps/chronos/migrations/0001_initial.py
@@ -116,8 +116,6 @@ class Migration(migrations.Migration):
             },
             bases=(
                 models.Model,
-                aleksis.apps.chronos.managers.GroupPropertiesMixin,
-                aleksis.apps.chronos.managers.TeacherPropertiesMixin,
             ),
             managers=[("objects", aleksis.core.managers.AlekSISBaseManager()),],
         ),
@@ -699,7 +697,7 @@ class Migration(migrations.Migration):
                 "verbose_name": "Extra lesson",
                 "verbose_name_plural": "Extra lessons",
             },
-            bases=(models.Model, aleksis.apps.chronos.managers.GroupPropertiesMixin),
+            bases=(models.Model,),
         ),
         migrations.CreateModel(
             name="Exam",
@@ -832,8 +830,6 @@ class Migration(migrations.Migration):
             },
             bases=(
                 models.Model,
-                aleksis.apps.chronos.managers.GroupPropertiesMixin,
-                aleksis.apps.chronos.managers.TeacherPropertiesMixin,
             ),
         ),
         migrations.AddField(
diff --git a/aleksis/apps/chronos/migrations/0004_substitution_extra_lesson_year.py b/aleksis/apps/chronos/migrations/0004_substitution_extra_lesson_year.py
index cb7383592d167f7d3aa4bf203aaa8cee503d7551..eeb02c4822fd609781ac8b02839511237114a0a2 100644
--- a/aleksis/apps/chronos/migrations/0004_substitution_extra_lesson_year.py
+++ b/aleksis/apps/chronos/migrations/0004_substitution_extra_lesson_year.py
@@ -1,8 +1,7 @@
 # Generated by Django 3.0.9 on 2020-08-13 14:06
 
 from django.db import migrations, models
-
-import aleksis.apps.chronos.util.date
+from django.utils import timezone
 
 
 def migrate_data(apps, schema_editor):
@@ -19,7 +18,7 @@ def migrate_data(apps, schema_editor):
         sub.save()
 
     for extra_lesson in ExtraLesson.objects.using(db_alias).all():
-        year = aleksis.apps.chronos.util.date.get_current_year()
+        year = timezone.now().year
         extra_lesson.year = year
         extra_lesson.save()
 
@@ -36,7 +35,7 @@ class Migration(migrations.Migration):
             model_name="extralesson",
             name="year",
             field=models.IntegerField(
-                default=aleksis.apps.chronos.util.date.get_current_year,
+                default=lambda: timezone.now().year,
                 verbose_name="Year",
             ),
         ),
@@ -44,7 +43,7 @@ class Migration(migrations.Migration):
             model_name="lessonsubstitution",
             name="year",
             field=models.IntegerField(
-                default=aleksis.apps.chronos.util.date.get_current_year,
+                default=lambda: timezone.now().year,
                 verbose_name="Year",
             ),
         ),
diff --git a/aleksis/apps/chronos/migrations/0019_remove_old_models.py b/aleksis/apps/chronos/migrations/0019_remove_old_models.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6668aabe3248e1717a2b08fb9cdf90f8a37a4c9
--- /dev/null
+++ b/aleksis/apps/chronos/migrations/0019_remove_old_models.py
@@ -0,0 +1,260 @@
+# Generated by Django 5.0.8 on 2024-08-14 13:08
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('chronos', '0018_check_new_models'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='absence',
+            name='group',
+        ),
+        migrations.RemoveField(
+            model_name='absence',
+            name='period_from',
+        ),
+        migrations.RemoveField(
+            model_name='absence',
+            name='period_to',
+        ),
+        migrations.RemoveField(
+            model_name='absence',
+            name='reason',
+        ),
+        migrations.RemoveField(
+            model_name='absence',
+            name='room',
+        ),
+        migrations.RemoveField(
+            model_name='absence',
+            name='school_term',
+        ),
+        migrations.RemoveField(
+            model_name='absence',
+            name='teacher',
+        ),
+        migrations.RemoveField(
+            model_name='break',
+            name='after_period',
+        ),
+        migrations.RemoveField(
+            model_name='break',
+            name='before_period',
+        ),
+        migrations.RemoveField(
+            model_name='break',
+            name='validity',
+        ),
+        migrations.RemoveField(
+            model_name='supervision',
+            name='break_item',
+        ),
+        migrations.RemoveField(
+            model_name='event',
+            name='groups',
+        ),
+        migrations.RemoveField(
+            model_name='event',
+            name='period_from',
+        ),
+        migrations.RemoveField(
+            model_name='event',
+            name='period_to',
+        ),
+        migrations.RemoveField(
+            model_name='event',
+            name='rooms',
+        ),
+        migrations.RemoveField(
+            model_name='event',
+            name='school_term',
+        ),
+        migrations.RemoveField(
+            model_name='event',
+            name='teachers',
+        ),
+        migrations.RemoveField(
+            model_name='exam',
+            name='lesson',
+        ),
+        migrations.RemoveField(
+            model_name='exam',
+            name='period_from',
+        ),
+        migrations.RemoveField(
+            model_name='exam',
+            name='period_to',
+        ),
+        migrations.RemoveField(
+            model_name='exam',
+            name='school_term',
+        ),
+        migrations.RemoveField(
+            model_name='extralesson',
+            name='exam',
+        ),
+        migrations.RemoveField(
+            model_name='extralesson',
+            name='groups',
+        ),
+        migrations.RemoveField(
+            model_name='extralesson',
+            name='period',
+        ),
+        migrations.RemoveField(
+            model_name='extralesson',
+            name='room',
+        ),
+        migrations.RemoveField(
+            model_name='extralesson',
+            name='school_term',
+        ),
+        migrations.RemoveField(
+            model_name='extralesson',
+            name='subject',
+        ),
+        migrations.RemoveField(
+            model_name='extralesson',
+            name='teachers',
+        ),
+        migrations.DeleteModel(
+            name='Holiday',
+        ),
+        migrations.RemoveField(
+            model_name='lesson',
+            name='groups',
+        ),
+        migrations.RemoveField(
+            model_name='lesson',
+            name='periods',
+        ),
+        migrations.RemoveField(
+            model_name='lesson',
+            name='subject',
+        ),
+        migrations.RemoveField(
+            model_name='lesson',
+            name='teachers',
+        ),
+        migrations.RemoveField(
+            model_name='lesson',
+            name='validity',
+        ),
+        migrations.RemoveField(
+            model_name='lessonperiod',
+            name='lesson',
+        ),
+        migrations.RemoveField(
+            model_name='lessonperiod',
+            name='period',
+        ),
+        migrations.RemoveField(
+            model_name='lessonperiod',
+            name='room',
+        ),
+        migrations.RemoveField(
+            model_name='lessonsubstitution',
+            name='lesson_period',
+        ),
+        migrations.RemoveField(
+            model_name='lessonsubstitution',
+            name='room',
+        ),
+        migrations.RemoveField(
+            model_name='lessonsubstitution',
+            name='subject',
+        ),
+        migrations.RemoveField(
+            model_name='lessonsubstitution',
+            name='teachers',
+        ),
+        migrations.RemoveField(
+            model_name='supervision',
+            name='area',
+        ),
+        migrations.RemoveField(
+            model_name='supervision',
+            name='teacher',
+        ),
+        migrations.RemoveField(
+            model_name='supervision',
+            name='validity',
+        ),
+        migrations.RemoveField(
+            model_name='supervisionsubstitution',
+            name='supervision',
+        ),
+        migrations.RemoveField(
+            model_name='supervisionsubstitution',
+            name='teacher',
+        ),
+        migrations.RemoveField(
+            model_name='timeperiod',
+            name='validity',
+        ),
+        migrations.RemoveField(
+            model_name='validityrange',
+            name='school_term',
+        ),
+        migrations.DeleteModel(
+            name='TimetableWidget',
+        ),
+        migrations.AlterModelOptions(
+            name='chronosglobalpermissions',
+            options={'managed': False, 'permissions': (('view_all_room_timetables', 'Can view all room timetables'), ('view_all_group_timetables', 'Can view all group timetables'), ('view_all_person_timetables', 'Can view all person timetables'), ('view_timetable_overview', 'Can view timetable overview'), ('view_substitutions', 'Can view substitutions table'))},
+        ),
+        migrations.AlterModelOptions(
+            name='supervisionevent',
+            options={'base_manager_name': 'objects'},
+        ),
+        migrations.DeleteModel(
+            name='AbsenceReason',
+        ),
+        migrations.DeleteModel(
+            name='Absence',
+        ),
+        migrations.DeleteModel(
+            name='Break',
+        ),
+        migrations.DeleteModel(
+            name='Event',
+        ),
+        migrations.DeleteModel(
+            name='Exam',
+        ),
+        migrations.DeleteModel(
+            name='ExtraLesson',
+        ),
+        migrations.DeleteModel(
+            name='Lesson',
+        ),
+        migrations.DeleteModel(
+            name='LessonPeriod',
+        ),
+        migrations.DeleteModel(
+            name='Subject',
+        ),
+        migrations.DeleteModel(
+            name='LessonSubstitution',
+        ),
+        migrations.DeleteModel(
+            name='SupervisionArea',
+        ),
+        migrations.DeleteModel(
+            name='Supervision',
+        ),
+        migrations.DeleteModel(
+            name='SupervisionSubstitution',
+        ),
+        migrations.DeleteModel(
+            name='TimePeriod',
+        ),
+        migrations.DeleteModel(
+            name='ValidityRange',
+        ),
+    ]