0001-misc-don-t-cascade-group-deletion-to-agendas-28710.patch
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 |
- |