diff --git a/aleksis/apps/alsijil/migrations/0003_groups_of_person.py b/aleksis/apps/alsijil/migrations/0003_groups_of_person.py
new file mode 100644
index 0000000000000000000000000000000000000000..c645b663a2b9fe54a019252cc03a613238bf9ab8
--- /dev/null
+++ b/aleksis/apps/alsijil/migrations/0003_groups_of_person.py
@@ -0,0 +1,33 @@
+# Generated by Django 3.0.8 on 2020-07-22 17:29
+
+from django.db import migrations, models
+
+
+def add_groups(apps, schema_editor):
+    PersonalNote = apps.get_model("alsijil", "PersonalNote")
+
+    db_alias = schema_editor.connection.alias
+
+    for personal_note in PersonalNote.objects.using(db_alias).all():
+        groups = list(personal_note.person.member_of.using(db_alias).all())
+        personal_note.groups_of_person.set(groups)
+        personal_note.save()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("core", "0003_drop_image_cropping"),
+        ("alsijil", "0002_excuse_type"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="personalnote",
+            name="groups_of_person",
+            field=models.ManyToManyField(
+                related_name="_personalnote_groups_of_person_+", to="core.Group"
+            ),
+        ),
+        migrations.RunPython(add_groups),
+    ]
diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index dee6542fccb73fb0e179e355487d3752a23f2736..04f868be69b32d3a35b80373fa900cae64b4b3a7 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -42,6 +42,7 @@ class PersonalNote(ExtensibleModel):
     person = models.ForeignKey(
         "core.Person", models.CASCADE, related_name="personal_notes"
     )
+    groups_of_person = models.ManyToManyField("core.Group", related_name="+")
 
     week = models.IntegerField()
     lesson_period = models.ForeignKey(
diff --git a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html
index 2090a42682a5fb8a7144f12606363da0b62680a9..373ae6a88f6f42953dfa0b4ffeceb8a26716104b 100644
--- a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html
+++ b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html
@@ -412,34 +412,36 @@
               <td class="lesson-notes">
                 {{ documentations.0.group_note }}
                 {% for note in notes %}
-                  {% if note.absent %}
-                    <span class="lesson-note-absent">
-                      {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
-                      {% if note.excused %}
-                        <span class="lesson-note-excused">
-                          {% if note.excuse_type %}
-                            ({{ note.excuse_type.short_name }})
-                          {% else %}
-                            ({% trans 'e' %})
-                          {% endif %}
-                        </span>
-                      {% endif %}
+                  {% if group in note.groups_of_person.all %}
+                    {% if note.absent %}
+                      <span class="lesson-note-absent">
+                        {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
+                        {% if note.excused %}
+                          <span class="lesson-note-excused">
+                            {% if note.excuse_type %}
+                              ({{ note.excuse_type.short_name }})
+                            {% else %}
+                              ({% trans 'e' %})
+                            {% endif %}
+                          </span>
+                        {% endif %}
                       </span>
-                  {% endif %}
-                  {% if note.late %}
-                    <span class="lesson-note-late">
-                      {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
-                      ({{ note.late }}′)
-                      {% if note.excused %}
-                        <span class="lesson-note-excused">
-                          {% if note.excuse_type %}
-                            ({{ note.excuse_type.short_name }})
-                          {% else %}
-                            ({% trans 'e' %})
-                          {% endif %}
-                        </span>
-                      {% endif %}
+                    {% endif %}
+                    {% if note.late %}
+                      <span class="lesson-note-late">
+                        {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
+                        ({{ note.late }}′)
+                        {% if note.excused %}
+                          <span class="lesson-note-excused">
+                            {% if note.excuse_type %}
+                              ({{ note.excuse_type.short_name }})
+                            {% else %}
+                              ({% trans 'e' %})
+                            {% endif %}
+                          </span>
+                        {% endif %}
                       </span>
+                    {% endif %}
                   {% endif %}
                   {% for extra_mark in note.extra_marks.all %}
                     <span>
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 7a041822212b4fca3f8b6a03c7f92f859a19bb33..8dbc88536d34e20b4311abce4a8e99548b7a4a41 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -360,7 +360,10 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
                     (lesson_period, documentations, notes, substitution)
                 )
 
-    persons = group.members.annotate(
+    persons = Person.objects.filter(
+        personal_notes__groups_of_person=group,
+        personal_notes__lesson_period__lesson__validity__school_term=current_school_term,
+    ).annotate(
         absences_count=Count(
             "personal_notes__absent",
             filter=Q(