diff --git a/biscuit/apps/chronos/models.py b/biscuit/apps/chronos/models.py
index 744ba2157d3184fe8dc855a3b2afbac338a0a525..bd8bb51350a971fad85c4205e4892f93fdac87e6 100644
--- a/biscuit/apps/chronos/models.py
+++ b/biscuit/apps/chronos/models.py
@@ -157,7 +157,7 @@ class LessonPeriod(SchoolRelated):
         return None
 
     def get_subject(self) -> Optional[Subject]:
-        if self.get_substitution():
+        if self.get_substitution() and self.get_substitution().subject:
             return self.get_substitution().subject
         else:
             return self.lesson.subject
@@ -169,11 +169,14 @@ class LessonPeriod(SchoolRelated):
             return self.lesson.teachers
 
     def get_room(self) -> Optional[Room]:
-        if self.get_substitution():
+        if self.get_substitution() and self.get_substitution().room:
             return self.get_substitution().room
         else:
             return self.room
 
+    def get_teacher_names(self, sep: Optional[str] = ', ') -> str:
+        return sep.join([teacher.full_name for teacher in self.get_teachers().all()])
+
     def get_groups(self) -> models.query.QuerySet:
         return self.lesson.groups