diff --git a/aleksis/apps/alsijil/schema.py b/aleksis/apps/alsijil/schema.py
index 8ee25fb4286b2b49b82f042b54190630c9de2893..f18f23e3950cf191ed60aef2a70f0e805834ce02 100644
--- a/aleksis/apps/alsijil/schema.py
+++ b/aleksis/apps/alsijil/schema.py
@@ -2,25 +2,48 @@ import graphene
 from graphene_django import DjangoObjectType
 from graphene_django.forms.mutation import DjangoModelFormMutation
 
+from aleksis.apps.chronos.models import LessonPeriod
+from aleksis.core.models import Person, Group
 from .forms import LessonDocumentationForm
 from .models import ExcuseType, LessonDocumentation, PersonalNote, ExtraMark
 
-# print([ExcuseType, LessonDocumentation, PersonalNote, ExtraMark])
-
 
 class ExcuseTypeType(DjangoObjectType):
     class Meta:
         model = ExcuseType
 
 
+class PersonalNoteType(DjangoObjectType):
+    class Meta:
+        model = PersonalNote
+
+
 class LessonDocumentationType(DjangoObjectType):
     class Meta:
         model = LessonDocumentation
 
+    personal_notes = graphene.List(PersonalNoteType)
+    date = graphene.Field(graphene.Date)
+    period = graphene.Field(graphene.Int)
 
-class PersonalNoteType(DjangoObjectType):
-    class Meta:
-        model = PersonalNote
+    def resolve_personal_notes(root: LessonDocumentation, info, **kwargs):
+        persons = Person.objects.filter(
+            member_of__in=Group.objects.filter(
+                pk__in=root.register_object.get_groups().all()
+            )
+        )
+        return PersonalNote.objects.filter(
+            week=root.week,
+            year=root.year,
+            lesson_period=root.lesson_period,
+            person__in=persons,
+        )
+
+    def resolve_period(root: LessonDocumentation, info, **kwargs):
+        return root.period.period
+
+    def resolve_date(root: LessonDocumentation, info, **kwargs):
+        return root.date
 
 
 class ExtraMarkType(DjangoObjectType):
@@ -38,17 +61,30 @@ class LessonDocumentationMutation(DjangoModelFormMutation):
 class Query(graphene.ObjectType):
     excuse_types = graphene.List(ExcuseTypeType)
     lesson_documentations = graphene.List(LessonDocumentationType)
+    lesson_documentations_by_lesson_id = graphene.List(LessonDocumentationType, id=graphene.ID())
     personal_notes = graphene.List(PersonalNoteType)
     extra_marks = graphene.List(ExtraMarkType)
 
     def resolve_excuse_types(root, info, **kwargs):
         # FIXME do permission stuff
-        print(ExcuseType.objects.all())
         return ExcuseType.objects.all()
 
     def resolve_lesson_documentations(root, info, **kwargs):
         # FIXME do permission stuff
-        return LessonDocumentation.objects.all()
+        return LessonDocumentation.objects.all().order_by("-year", "-week", "-lesson_period__period__weekday",
+                                                          "-lesson_period__period__period")
+
+    def resolve_lesson_documentations_by_lesson_id(root, info, id, **kwargs):
+        return LessonDocumentation.objects.filter(
+            lesson_period_id__in=LessonPeriod.objects.filter(
+                lesson_id=id
+            ).values_list("id", flat=True)
+        ).order_by(
+            "-year",
+            "-week",
+            "-lesson_period__period__weekday",
+            "-lesson_period__period__period"
+        )
 
     def resolve_personal_notes(root, info, **kwargs):
         # FIXME do permission stuff
@@ -56,6 +92,3 @@ class Query(graphene.ObjectType):
 
     def resolve_extra_marks(root, info, **kwargs):
         return ExtraMark.objects.all()
-
-# print("Hello2")
-# schema = graphene.Schema(query=Query)