0001-manager-allow-reusing-meeting-type-slug-after-deleti.patch
chrono/manager/views.py | ||
---|---|---|
18 | 18 |
import itertools |
19 | 19 |
import json |
20 | 20 |
import math |
21 |
import uuid |
|
21 | 22 | |
22 | 23 |
from django.contrib import messages |
23 | 24 |
from django.core.exceptions import PermissionDenied |
... | ... | |
1371 | 1372 |
# to mark for deletion instead of actually delete |
1372 | 1373 |
success_url = self.get_success_url() |
1373 | 1374 |
self.object.deleted = True |
1375 |
self.object.slug += '__deleted__' + str(uuid.uuid4()) |
|
1374 | 1376 |
self.object.save() |
1375 | 1377 |
return HttpResponseRedirect(success_url) |
1376 | 1378 |
tests/test_manager.py | ||
---|---|---|
1439 | 1439 |
assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.id) |
1440 | 1440 |
meeting_type.refresh_from_db() |
1441 | 1441 |
assert meeting_type.deleted is True |
1442 |
assert '__deleted__' in meeting_type.slug |
|
1442 | 1443 | |
1443 | 1444 |
# meeting type not showing up anymore |
1444 | 1445 |
resp = app.get('/manage/', status=200) |
... | ... | |
1446 | 1447 |
resp = resp.click('Settings') |
1447 | 1448 |
assert 'Meeting Type Foo' not in resp.text |
1448 | 1449 | |
1450 |
# it is possible to add a new meeting type with the same slug |
|
1451 |
new_meeting_type = MeetingType.objects.create(agenda=agenda, label='Blah') |
|
1452 |
assert new_meeting_type.slug == 'blah' |
|
1453 | ||
1449 | 1454 | |
1450 | 1455 |
def test_meetings_agenda_add_time_period(app, admin_user): |
1451 | 1456 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings') |
1452 |
- |