Projet

Général

Profil

0001-virtual-agendas-allow-direct-relation-from-agenda-to.patch

Emmanuel Cazenave, 26 février 2020 18:30

Télécharger (2,79 ko)

Voir les différences:

Subject: [PATCH 1/3] virtual agendas: allow direct relation from agenda to
 timeperiod (#40058)

 .../migrations/0040_timeperiod_agenda.py      | 33 +++++++++++++++++++
 chrono/agendas/models.py                      | 10 +++++-
 2 files changed, 42 insertions(+), 1 deletion(-)
 create mode 100644 chrono/agendas/migrations/0040_timeperiod_agenda.py
chrono/agendas/migrations/0040_timeperiod_agenda.py
1
# -*- coding: utf-8 -*-
2
# Generated by Django 1.11.18 on 2020-02-26 13:27
3
from __future__ import unicode_literals
4

  
5
from django.db import migrations, models
6
import django.db.models.deletion
7

  
8

  
9
class Migration(migrations.Migration):
10

  
11
    dependencies = [
12
        ('agendas', '0039_booking_delays'),
13
    ]
14

  
15
    operations = [
16
        migrations.AddField(
17
            model_name='timeperiod',
18
            name='agenda',
19
            field=models.ForeignKey(
20
                null=True,
21
                on_delete=django.db.models.deletion.CASCADE,
22
                related_name='excluded_timeperiods',
23
                to='agendas.Agenda',
24
            ),
25
        ),
26
        migrations.AlterField(
27
            model_name='timeperiod',
28
            name='desk',
29
            field=models.ForeignKey(
30
                null=True, on_delete=django.db.models.deletion.CASCADE, to='agendas.Desk'
31
            ),
32
        ),
33
    ]
chrono/agendas/models.py
296 296
    weekday = models.IntegerField(_('Week day'), choices=WEEKDAYS_LIST)
297 297
    start_time = models.TimeField(_('Start'))
298 298
    end_time = models.TimeField(_('End'))
299
    desk = models.ForeignKey('Desk', on_delete=models.CASCADE)
299
    desk = models.ForeignKey('Desk', on_delete=models.CASCADE, null=True)
300
    agenda = models.ForeignKey(
301
        Agenda, on_delete=models.CASCADE, null=True, related_name='excluded_timeperiods'
302
    )
300 303

  
301 304
    class Meta:
302 305
        ordering = ['weekday', 'start_time']
......
308 311
            date_format(self.end_time, 'TIME_FORMAT'),
309 312
        )
310 313

  
314
    def save(self, *args, **kwargs):
315
        if self.agenda:
316
            assert self.agenda.kind == 'virtual', "a time peŕiod can only reference a virtual agenda"
317
        super(TimePeriod, self).save(*args, **kwargs)
318

  
311 319
    @property
312 320
    def weekday_str(self):
313 321
        return WEEKDAYS[self.weekday]
314
-