diff --git a/biscuit/apps/chronos/models.py b/biscuit/apps/chronos/models.py index 7b8ff62620b0c8458f3fb02453cdcea7160d752c..8ebf484e7fc1fc9a24538d50ebed5d52da11423b 100644 --- a/biscuit/apps/chronos/models.py +++ b/biscuit/apps/chronos/models.py @@ -55,7 +55,8 @@ class Subject(models.Model): class Room(models.Model): short_name = models.CharField(verbose_name=_( 'Short name, e.g. room number'), max_length=10, unique=True) - name = models.CharField(verbose_name=_('Long name'), max_length=30, unique=True) + name = models.CharField(verbose_name=_('Long name'), + max_length=30, unique=True) def __str__(self): return '%s (%s)' % (self.name, self.short_name) @@ -80,3 +81,15 @@ class LessonPeriod(models.Model): period = models.ForeignKey('TimePeriod', models.CASCADE) room = models.ForeignKey('Room', models.CASCADE, null=True) + + substitution = models.OneToOneField('LessonSubstitution', models.CASCADE, + 'lesson_period', null=True) + + +class LessonSubstitution(models.Model): + subject = models.ForeignKey( + 'Subject', on_delete=models.CASCADE, + related_name='lesson_substitutions', null=True) + teachers = models.ManyToManyField('core.Person', + related_name='lesson_substitutions') + room = models.ForeignKey('Room', models.CASCADE, null=True)