Projet

Général

Profil

0001-misc-don-t-cascade-group-deletion-to-agendas-28710.patch

Frédéric Péters, 06 décembre 2018 13:53

Télécharger (3,53 ko)

Voir les différences:

Subject: [PATCH] misc: don't cascade group deletion to agendas (#28710)

 .../migrations/0025_auto_20181206_1252.py     | 26 +++++++++++++++++++
 chrono/agendas/models.py                      |  6 +++--
 tests/test_agendas.py                         | 13 ++++++++++
 3 files changed, 43 insertions(+), 2 deletions(-)
 create mode 100644 chrono/agendas/migrations/0025_auto_20181206_1252.py
chrono/agendas/migrations/0025_auto_20181206_1252.py
1
# -*- coding: utf-8 -*-
2
# Generated by Django 1.11.12 on 2018-12-06 12:52
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', '0024_auto_20180426_1127'),
13
    ]
14

  
15
    operations = [
16
        migrations.AlterField(
17
            model_name='agenda',
18
            name='edit_role',
19
            field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='auth.Group', verbose_name='Edit Role'),
20
        ),
21
        migrations.AlterField(
22
            model_name='agenda',
23
            name='view_role',
24
            field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='auth.Group', verbose_name='View Role'),
25
        ),
26
    ]
chrono/agendas/models.py
66 66
    maximal_booking_delay = models.PositiveIntegerField(
67 67
            _('Maximal booking delay (in days)'), default=56) # eight weeks
68 68
    edit_role = models.ForeignKey(Group, blank=True, null=True, default=None,
69
            related_name='+', verbose_name=_('Edit Role'))
69
            related_name='+', verbose_name=_('Edit Role'),
70
            on_delete=models.SET_NULL)
70 71
    view_role = models.ForeignKey(Group, blank=True, null=True, default=None,
71
            related_name='+', verbose_name=_('View Role'))
72
            related_name='+', verbose_name=_('View Role'),
73
            on_delete=models.SET_NULL)
72 74

  
73 75
    class Meta:
74 76
        ordering = ['label']
tests/test_agendas.py
6 6

  
7 7

  
8 8
from django.utils.timezone import now, make_aware, localtime
9
from django.contrib.auth.models import Group
9 10
from django.core.management import call_command
10 11
from django.core.management.base import CommandError
11 12

  
......
454 455
    desk = Desk(label='Test atreal desk', agenda=agenda)
455 456
    desk.save()
456 457
    assert desk.create_timeperiod_exceptions_from_ics(ICS_ATREAL)
458

  
459

  
460
def test_management_role_deletion():
461
    group = Group(name=u'Group')
462
    group.save()
463
    agenda = Agenda(label=u'Test agenda', edit_role=group, view_role=group)
464
    agenda.save()
465

  
466
    Group.objects.all().delete()
467

  
468
    Agenda.objects.get(id=agenda.id).view_role is None
469
    Agenda.objects.get(id=agenda.id).edit_role is None
457
-