virtual agendas: allow direct relation from agenda to timeperiod (#40058)

This commit is contained in:
Emmanuel Cazenave 2020-02-26 11:50:11 +01:00 committed by Frédéric Péters
parent 55f6d0e47d
commit 3aba16e82b
2 changed files with 42 additions and 1 deletions

View File

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.18 on 2020-02-26 13:27
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('agendas', '0039_booking_delays'),
]
operations = [
migrations.AddField(
model_name='timeperiod',
name='agenda',
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name='excluded_timeperiods',
to='agendas.Agenda',
),
),
migrations.AlterField(
model_name='timeperiod',
name='desk',
field=models.ForeignKey(
null=True, on_delete=django.db.models.deletion.CASCADE, to='agendas.Desk'
),
),
]

View File

@ -326,7 +326,10 @@ class TimePeriod(models.Model):
weekday = models.IntegerField(_('Week day'), choices=WEEKDAYS_LIST)
start_time = models.TimeField(_('Start'))
end_time = models.TimeField(_('End'))
desk = models.ForeignKey('Desk', on_delete=models.CASCADE)
desk = models.ForeignKey('Desk', on_delete=models.CASCADE, null=True)
agenda = models.ForeignKey(
Agenda, on_delete=models.CASCADE, null=True, related_name='excluded_timeperiods'
)
class Meta:
ordering = ['weekday', 'start_time']
@ -338,6 +341,11 @@ class TimePeriod(models.Model):
date_format(self.end_time, 'TIME_FORMAT'),
)
def save(self, *args, **kwargs):
if self.agenda:
assert self.agenda.kind == 'virtual', "a time peŕiod can only reference a virtual agenda"
super(TimePeriod, self).save(*args, **kwargs)
@property
def weekday_str(self):
return WEEKDAYS[self.weekday]