fix: redirect to renamed schedule after saving a name change (#3696)

Fixes #3427
This commit is contained in:
Jennifer Richards 2022-03-21 16:22:28 -03:00 committed by GitHub
parent 6ee123d29b
commit fd2adc86eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 6 deletions

View file

@ -851,7 +851,7 @@ class MeetingTests(BaseMeetingTestCase):
new_base = Schedule.objects.create(name="newbase", owner=schedule.owner, meeting=schedule.meeting)
response = self.client.post(url, {
'name':schedule.name,
'name': 'some-other-name',
'visible':True,
'public':True,
'notes': "New Notes",
@ -859,11 +859,19 @@ class MeetingTests(BaseMeetingTestCase):
}
)
self.assertNoFormPostErrors(response)
self.assertRedirects(
response,
urlreverse(
'ietf.meeting.views.edit_meeting_schedule',
kwargs={'num': schedule.meeting.number, 'owner': schedule.owner.email(), 'name': 'some-other-name'}
),
)
schedule.refresh_from_db()
self.assertTrue(schedule.visible)
self.assertTrue(schedule.public)
self.assertEqual(schedule.notes, "New Notes")
self.assertEqual(schedule.base_id, new_base.pk)
self.assertEqual(schedule.name, 'some-other-name')
def test_agenda_by_type_ics(self):
session=SessionFactory(meeting__type_id='ietf',type_id='lead')

View file

@ -1344,12 +1344,13 @@ def edit_schedule_properties(request, num, owner, name):
permission_denied(request, "You may not edit this schedule.")
if request.method == 'POST':
form = SchedulePropertiesForm(meeting, instance=schedule, data=request.POST)
# use a new copy of the Schedule instance for the form so the template isn't fouled if validation fails
form = SchedulePropertiesForm(meeting, instance=Schedule.objects.get(pk=schedule.pk), data=request.POST)
if form.is_valid():
form.save()
if request.GET.get('next'):
return HttpResponseRedirect(request.GET.get('next'))
return redirect('ietf.meeting.views.edit_meeting_schedule', num=num, owner=owner, name=name)
form.save()
if request.GET.get('next'):
return HttpResponseRedirect(request.GET.get('next'))
return redirect('ietf.meeting.views.edit_meeting_schedule', num=num, owner=owner, name=form.instance.name)
else:
form = SchedulePropertiesForm(meeting, instance=schedule)