Skip to content
Snippets Groups Projects
Verified Commit a6e7d260 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Add model for extra lessons

parent 2ee0bea8
No related branches found
No related tags found
1 merge request!51Include extra lessons
......@@ -17,6 +17,7 @@ from .models import (
AbsenceReason,
Break,
TimePeriod,
ExtraLesson,
)
from .util.format import format_date_period, format_m2m
......@@ -91,6 +92,19 @@ class EventAdmin(admin.ModelAdmin):
admin.site.register(Event, EventAdmin)
class ExtraLessonAdmin(admin.ModelAdmin):
def _groups(self, obj):
return format_m2m(obj.groups)
def _teachers(self, obj):
return format_m2m(obj.teachers)
list_display = ("week", "period", "subject", "_groups", "_teachers", "room")
admin.site.register(ExtraLesson, ExtraLessonAdmin)
class HolidayAdmin(admin.ModelAdmin):
list_display = ("title", "date_start", "date_end")
......
# Generated by Django 3.0.5 on 2020-04-18 20:21
import calendarweek.calendarweek
import django.contrib.postgres.fields.jsonb
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('chronos', '0013_event_title_optional'),
]
operations = [
migrations.CreateModel(
name='ExtraLesson',
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)),
('week', models.IntegerField(default=calendarweek.calendarweek.CalendarWeek.current_week, verbose_name='Week')),
('comment', models.CharField(blank=True, max_length=255, null=True, verbose_name='Comment')),
],
options={
'abstract': False,
},
),
migrations.AddField(
model_name='extralesson',
name='groups',
field=models.ManyToManyField(related_name='extra_lessons', to='core.Group', verbose_name='Groups'),
),
migrations.AddField(
model_name='extralesson',
name='period',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='extra_lessons', to='chronos.TimePeriod'),
),
migrations.AddField(
model_name='extralesson',
name='room',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='extra_lessons', to='chronos.Room', verbose_name='Room'),
),
migrations.AddField(
model_name='extralesson',
name='subject',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='extra_lessons', to='chronos.Subject', verbose_name='Subject'),
),
migrations.AddField(
model_name='extralesson',
name='teachers',
field=models.ManyToManyField(related_name='extra_lessons_as_teacher', to='core.Person', verbose_name='Teachers'),
),
]
......@@ -1030,3 +1030,22 @@ class Event(ExtensibleModel):
indexes = [models.Index(fields=["period_from", "period_to", "date_start", "date_end"])]
verbose_name = _("Event")
verbose_name_plural = _("Events")
class ExtraLesson(ExtensibleModel):
week = models.IntegerField(verbose_name=_("Week"), default=CalendarWeek.current_week)
period = models.ForeignKey("TimePeriod", models.CASCADE, related_name="extra_lessons")
subject = models.ForeignKey("Subject", on_delete=models.CASCADE, related_name="extra_lessons", verbose_name=_("Subject"))
groups = models.ManyToManyField("core.Group", related_name="extra_lessons", verbose_name=_("Groups"))
teachers = models.ManyToManyField("core.Person", related_name="extra_lessons_as_teacher", verbose_name=_("Teachers"))
room = models.ForeignKey("Room", models.CASCADE, null=True, related_name="extra_lessons", verbose_name=_("Room"))
comment = models.CharField(verbose_name=_("Comment"), blank=True, null=True, max_length=255)
def __str__(self):
return "{}, {}, {}".format(self.week, self.period, self.subject)
class Meta:
verbose_name = _("Extra lesson")
verbose_name_plural = _("Extra lessons")
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