agendas: change on_delete for Agenda -> EventsType to SET_NULL (#85974)

This commit is contained in:
Yann Weber 2024-01-22 12:14:03 +01:00 committed by Yann Weber
parent 9c660e7a1e
commit d428ef8385
3 changed files with 40 additions and 1 deletions

View File

@ -0,0 +1,25 @@
# Generated by Django 3.2.18 on 2024-01-22 10:55
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agendas', '0169_urlfield_maxlength_increase'),
]
operations = [
migrations.AlterField(
model_name='agenda',
name='events_type',
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name='agendas',
to='agendas.eventstype',
verbose_name='Events type',
),
),
]

View File

@ -278,7 +278,7 @@ class Agenda(models.Model):
events_type = models.ForeignKey(
'agendas.EventsType',
verbose_name=_('Events type'),
on_delete=models.CASCADE,
on_delete=models.SET_NULL,
related_name='agendas',
null=True,
blank=True,

View File

@ -162,6 +162,20 @@ def test_delete_events_type(app, admin_user):
assert EventsType.objects.exists() is False
def test_delete_referenced_events_type(app):
events_type = EventsType.objects.create(label='Foobar')
events_type.save()
agenda = Agenda(label='Foo Bar', events_type=events_type)
agenda.save()
events_type.delete()
agenda = Agenda.objects.get(pk=agenda.pk)
assert agenda
assert agenda.events_type is None
def test_delete_events_type_as_manager(app, manager_user):
agenda = Agenda(label='Foo Bar')
agenda.view_role = manager_user.groups.all()[0]