Newer
Older

Jonathan Weth
committed
from django.db.models import QuerySet
from django.db.models.query_utils import Q
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")
)

Jonathan Weth
committed
class PersonalNoteQuerySet(QuerySet):
def not_empty(self):
"""Get all not empty personal notes."""
return self.filter(
~Q(remarks="") | Q(absent=True) | ~Q(late=0) | Q(extra_marks__isnull=False)
)
class LessonDocumentationManager(CurrentSiteManagerWithoutMigrations):
pass
class LessonDocumentationQuerySet(QuerySet):
def not_empty(self):
"""Get all not empty lesson documentations."""
return self.filter(~Q(topic="") | ~Q(group_note="") | ~Q(homework=""))