manager: allow reusing meeting type slug after deletion (#44512)

This commit is contained in:
Valentin Deniaud 2020-07-01 11:51:50 +02:00
parent 7e07387301
commit f1d67da603
2 changed files with 7 additions and 0 deletions

View File

@ -18,6 +18,7 @@ import datetime
import itertools
import json
import math
import uuid
from django.contrib import messages
from django.core.exceptions import PermissionDenied
@ -1371,6 +1372,7 @@ class MeetingTypeDeleteView(ManagedAgendaSubobjectMixin, DeleteView):
# to mark for deletion instead of actually delete
success_url = self.get_success_url()
self.object.deleted = True
self.object.slug += '__deleted__' + str(uuid.uuid4())
self.object.save()
return HttpResponseRedirect(success_url)

View File

@ -1439,6 +1439,7 @@ def test_meetings_agenda_delete_meeting_type(app, admin_user):
assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.id)
meeting_type.refresh_from_db()
assert meeting_type.deleted is True
assert '__deleted__' in meeting_type.slug
# meeting type not showing up anymore
resp = app.get('/manage/', status=200)
@ -1446,6 +1447,10 @@ def test_meetings_agenda_delete_meeting_type(app, admin_user):
resp = resp.click('Settings')
assert 'Meeting Type Foo' not in resp.text
# it is possible to add a new meeting type with the same slug
new_meeting_type = MeetingType.objects.create(agenda=agenda, label='Blah')
assert new_meeting_type.slug == 'blah'
def test_meetings_agenda_add_time_period(app, admin_user):
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')