Skip to content
Snippets Groups Projects
Commit 027789fa authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Add missing models

parent e36eb745
No related branches found
No related tags found
1 merge request!39Resolve "Models for advanced features from SchoolApps (imported from Untis)"
# Generated by Django 3.0.2 on 2020-03-07 13:53
# Generated by Django 3.0.2 on 2020-03-08 13:49
import colorfield.fields
import django.contrib.postgres.fields.jsonb
from django.db import migrations, models
import django.db.models.deletion
......@@ -40,6 +41,22 @@ class Migration(migrations.Migration):
'verbose_name': 'Absence reason',
},
),
migrations.CreateModel(
name='Event',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
('title', models.CharField(max_length=50, verbose_name='Title')),
('datefrom', models.DateField(null=True, verbose_name='Effective start date of event')),
('dateto', models.DateField(null=True, verbose_name='Effective end date of event')),
('timefrom', models.DateTimeField(null=True, verbose_name='Effective start time of event')),
('timeto', models.DateTimeField(null=True, verbose_name='Effective end time of event')),
],
options={
'verbose_name': 'Events',
'ordering': ['datefrom'],
},
),
migrations.CreateModel(
name='Exam',
fields=[
......@@ -70,6 +87,33 @@ class Migration(migrations.Migration):
'ordering': ['datefrom'],
},
),
migrations.CreateModel(
name='SupervisionArea',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('extended_data', django.contrib.postgres.fields.jsonb.JSONField(default=dict, editable=False)),
('name', models.CharField(max_length=10, verbose_name='Short name')),
('longname', models.CharField(max_length=50, verbose_name='Long name')),
('colour_fg', colorfield.fields.ColorField(default='#FFFFFF', max_length=18)),
('colour_bg', colorfield.fields.ColorField(default='#FFFFFF', max_length=18)),
],
options={
'verbose_name': 'Supervision areas',
'ordering': ['name'],
},
),
migrations.CreateModel(
name='TimetableWidget',
fields=[
],
options={
'verbose_name': 'Timetable widget',
'proxy': True,
'indexes': [],
'constraints': [],
},
bases=('core.dashboardwidget',),
),
migrations.AddIndex(
model_name='holiday',
index=models.Index(fields=['datefrom', 'dateto'], name='chronos_hol_datefro_36520a_idx'),
......@@ -79,10 +123,35 @@ class Migration(migrations.Migration):
name='lesson',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lesson', to='chronos.Lesson'),
),
migrations.AddField(
model_name='event',
name='absence_reason',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='absence_reason', to='chronos.AbsenceReason', verbose_name='Absence reason'),
),
migrations.AddField(
model_name='event',
name='group',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='group', to='core.Group', verbose_name='Group'),
),
migrations.AddField(
model_name='event',
name='periodfrom',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='periodfrom', to='chronos.TimePeriod', verbose_name='Effective start period of event'),
),
migrations.AddField(
model_name='event',
name='periodto',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='periodto', to='chronos.TimePeriod', verbose_name='Effective end period of event'),
),
migrations.AddField(
model_name='event',
name='subject',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subject', to='chronos.Subject', verbose_name='Subject'),
),
migrations.AddField(
model_name='absence',
name='person',
field=models.ManyToManyField(related_name='person', to='core.Person'),
field=models.ManyToManyField(related_name='fk_person', to='core.Person'),
),
migrations.AddField(
model_name='absence',
......@@ -93,6 +162,10 @@ class Migration(migrations.Migration):
model_name='exam',
index=models.Index(fields=['periodfrom', 'periodto'], name='chronos_exa_periodf_2f686a_idx'),
),
migrations.AddIndex(
model_name='event',
index=models.Index(fields=['periodfrom', 'periodto'], name='chronos_eve_periodf_1fa12c_idx'),
),
migrations.AddIndex(
model_name='absence',
index=models.Index(fields=['datefrom', 'dateto'], name='chronos_abs_datefro_d55b67_idx'),
......
......@@ -17,6 +17,7 @@ from django.utils.decorators import classproperty
from django.utils.translation import ugettext_lazy as _
from calendarweek.django import CalendarWeek, i18n_day_names_lazy, i18n_day_abbrs_lazy
from colorfield.fields import ColorField
from django_global_request.middleware import get_request
from aleksis.core.mixins import ExtensibleModel
......@@ -611,7 +612,7 @@ class Exam(ExtensibleModel):
date = models.DateField(verbose_name=_("Date of exam"), null=True)
periodfrom = models.IntegerField(verbose_name=_("Effective start period of exam"), null=True)
periodto = models.IntegerField(verbose_name=_("Effective end period of exam"), null=True)
periodto = models.IntegerField(verbose_name=_("Effective end period of exam"), null=True)
title = models.CharField(verbose_name=_("Title"), max_length=50)
comment = models.TextField(verbose_name=_("Comment"))
......@@ -630,3 +631,34 @@ class Holiday(ExtensibleModel):
ordering = ["datefrom"]
indexes = [models.Index(fields=["datefrom", "dateto"])]
verbose_name = _("Holiday")
class SupervisionArea(ExtensibleModel):
name = models.CharField(verbose_name=_("Short name"), max_length=10)
longname = models.CharField(verbose_name=_("Long name"), max_length=50)
colour_fg = ColorField()
colour_bg = ColorField()
class Meta:
ordering = ["name"]
verbose_name = _("Supervision area")
verbose_name = _("Supervision areas")
class Event(ExtensibleModel):
title = models.CharField(verbose_name=_("Title"), max_length=50)
datefrom = models.DateField(verbose_name=_("Effective start date of event"), null=True)
dateto = models.DateField(verbose_name=_("Effective end date of event"), null=True)
absence_reason = models.ForeignKey("AbsenceReason", on_delete=models.CASCADE, related_name="absence_reason", verbose_name=_("Absence reason"))
periodfrom = models.ForeignKey("TimePeriod", on_delete=models.CASCADE, related_name="periodfrom", verbose_name=_("Effective start period of event"))
periodto = models.ForeignKey("TimePeriod", on_delete=models.CASCADE, related_name="periodto", verbose_name=_("Effective end period of event"))
group = models.ForeignKey("core.Group", on_delete=models.CASCADE, related_name="group", verbose_name=_("Group"))
subject = models.ForeignKey("Subject", on_delete=models.CASCADE, related_name="subject", verbose_name=_("Subject"))
timefrom = models.DateTimeField(verbose_name=_("Effective start time of event"), null=True)
timeto = models.DateTimeField(verbose_name=_("Effective end time of event"), null=True)
class Meta:
ordering = ["datefrom"]
indexes = [models.Index(fields=["periodfrom", "periodto"])]
verbose_name = _("Event")
verbose_name = _("Events")
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