Skip to content
Snippets Groups Projects
Verified Commit 5795aa01 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Add personal note manager in order to prefetch some data

parent e4189166
No related branches found
No related tags found
1 merge request!90Performance optimizations
from aleksis.core.managers import CurrentSiteManagerWithoutMigrations
class PersonalNoteManager(CurrentSiteManagerWithoutMigrations):
"""Manager adding specific methods to personal notes."""
def get_queryset(self):
"""Ensure all related lesson and person data are loaded as well."""
return (
super()
.get_queryset()
.select_related(
"person",
"excuse_type",
"lesson_period",
"lesson_period__lesson",
"lesson_period__lesson__subject",
"lesson_period__period",
"lesson_period__lesson__validity",
"lesson_period__lesson__validity__school_term",
)
.prefetch_related("extra_marks")
)
......@@ -4,6 +4,7 @@ from django.utils.translation import gettext_lazy as _
from calendarweek import CalendarWeek
from aleksis.apps.alsijil.managers import PersonalNoteManager
from aleksis.apps.chronos.mixins import WeekRelatedMixin
from aleksis.apps.chronos.models import LessonPeriod
from aleksis.apps.chronos.util.date import get_current_year
......@@ -46,6 +47,8 @@ class PersonalNote(ExtensibleModel, WeekRelatedMixin):
and remarks about a student in a single lesson period.
"""
objects = PersonalNoteManager()
person = models.ForeignKey(
"core.Person", models.CASCADE, related_name="personal_notes"
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment