Skip to content
Snippets Groups Projects
Unverified Commit 40d35403 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Turn room information into n:m property of period.

parent e7d126bf
No related branches found
No related tags found
No related merge requests found
...@@ -17,33 +17,62 @@ class Migration(migrations.Migration): ...@@ -17,33 +17,62 @@ class Migration(migrations.Migration):
migrations.CreateModel( migrations.CreateModel(
name='Subject', name='Subject',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True,
('abbrev', models.CharField(max_length=10, verbose_name='Abbreviation of subject in timetable')), primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=30, verbose_name='Long name of subject')), ('abbrev', models.CharField(max_length=10,
('colour_fg', models.CharField(blank=True, max_length=7, validators=[django.core.validators.RegexValidator('#[0-9A-F]{6}')], verbose_name='Foreground colour in timetable')), verbose_name='Abbreviation of subject in timetable')),
('colour_bg', models.CharField(blank=True, max_length=7, validators=[django.core.validators.RegexValidator('#[0-9A-F]{6}')], verbose_name='Background colour in timetable')), ('name', models.CharField(max_length=30,
verbose_name='Long name of subject')),
('colour_fg', models.CharField(blank=True, max_length=7, validators=[
django.core.validators.RegexValidator('#[0-9A-F]{6}')], verbose_name='Foreground colour in timetable')),
('colour_bg', models.CharField(blank=True, max_length=7, validators=[
django.core.validators.RegexValidator('#[0-9A-F]{6}')], verbose_name='Background colour in timetable')),
], ],
), ),
migrations.CreateModel( migrations.CreateModel(
name='TimePeriod', name='TimePeriod',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True,
('weekday', models.PositiveSmallIntegerField(choices=[(0, 'Sunday'), (1, 'Monday'), (2, 'Tuesday'), (3, 'Wednesday'), (4, 'Thursday'), (5, 'Friday'), (6, 'Saturday')], verbose_name='Week day')), primary_key=True, serialize=False, verbose_name='ID')),
('period', models.PositiveSmallIntegerField(verbose_name='Number of period')), ('weekday', models.PositiveSmallIntegerField(choices=[(0, 'Sunday'), (1, 'Monday'), (2, 'Tuesday'), (
('time_start', models.TimeField(verbose_name='Time the period starts')), 3, 'Wednesday'), (4, 'Thursday'), (5, 'Friday'), (6, 'Saturday')], verbose_name='Week day')),
('period', models.PositiveSmallIntegerField(
verbose_name='Number of period')),
('time_start', models.TimeField(
verbose_name='Time the period starts')),
('time_end', models.TimeField(verbose_name='Time the period ends')), ('time_end', models.TimeField(verbose_name='Time the period ends')),
], ],
), ),
migrations.CreateModel(
name='LessonPeriod',
fields=[
('id', models.AutoField(auto_created=True,
primary_key=True, serialize=False, verbose_name='ID')),
('lesson', models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to='chronos.Lesson')),
('period', models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to='chronos.TimePeriod')),
('room', models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to='cambro.Room', null=True)),
],
),
migrations.CreateModel( migrations.CreateModel(
name='Lesson', name='Lesson',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True,
('date_start', models.DateField(null=True, verbose_name='Effective start date of lesson')), primary_key=True, serialize=False, verbose_name='ID')),
('date_end', models.DateField(null=True, verbose_name='Effective end date of lesson')), ('date_start', models.DateField(null=True,
('groups', models.ManyToManyField(related_name='lessons', to='core.Group')), verbose_name='Effective start date of lesson')),
('periods', models.ManyToManyField(related_name='lessons', to='chronos.TimePeriod')), ('date_end', models.DateField(null=True,
('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lessons', to='chronos.Subject')), verbose_name='Effective end date of lesson')),
('teachers', models.ManyToManyField(related_name='lessons', to='core.Person')), ('groups', models.ManyToManyField(
related_name='lessons', to='core.Group')),
('periods', models.ManyToManyField(related_name='lessons',
through='chronos.LessonPeriod', to='chronos.TimePeriod')),
('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
related_name='lessons', to='chronos.Subject')),
('teachers', models.ManyToManyField(
related_name='lessons', to='core.Person')),
], ],
), ),
] ]
# Generated by Django 2.2.3 on 2019-07-16 21:54
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('cambro', '0001_initial'),
('chronos', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='lesson',
name='room',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='lessons', to='cambro.Room'),
),
]
...@@ -44,12 +44,18 @@ class Lesson(models.Model): ...@@ -44,12 +44,18 @@ class Lesson(models.Model):
subject = models.ForeignKey( subject = models.ForeignKey(
'Subject', on_delete=models.CASCADE, related_name='lessons') 'Subject', on_delete=models.CASCADE, related_name='lessons')
teachers = models.ManyToManyField('core.Person', related_name='lessons') teachers = models.ManyToManyField('core.Person', related_name='lessons')
periods = models.ManyToManyField('TimePeriod', related_name='lessons') periods = models.ManyToManyField(
'TimePeriod', related_name='lessons', through='LessonPeriod')
groups = models.ManyToManyField('core.Group', related_name='lessons') groups = models.ManyToManyField('core.Group', related_name='lessons')
room = models.ForeignKey(
'cambro.Room', related_name='lessons', on_delete=models.CASCADE, null=True)
date_start = models.DateField(verbose_name=_( date_start = models.DateField(verbose_name=_(
'Effective start date of lesson'), null=True) 'Effective start date of lesson'), null=True)
date_end = models.DateField(verbose_name=_( date_end = models.DateField(verbose_name=_(
'Effective end date of lesson'), null=True) 'Effective end date of lesson'), null=True)
class LessonPeriod(models.Model):
lesson = models.ForeignKey('Lesson', models.CASCADE)
period = models.ForeignKey('TimePeriod', models.CASCADE)
room = models.ForeignKey('cambro.Room', models.CASCADE, null=True)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment