Skip to content

Commit ec78569

Browse files
committed
Merged in [19675] from jennifer@painless-security.com:
Update uploaded_filename when modifying agenda through the interim meeting request edit view. Fixes ietf-tools#3395. - Legacy-Id: 19721 Note: SVN reference [19675] has been migrated to Git commit 9d853d3
2 parents 0e5da15 + 9d853d3 commit ec78569

2 files changed

Lines changed: 40 additions & 0 deletions

File tree

ietf/meeting/forms.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ def save_agenda(self):
263263
if self.instance.agenda():
264264
doc = self.instance.agenda()
265265
doc.rev = str(int(doc.rev) + 1).zfill(2)
266+
doc.uploaded_filename = doc.filename_with_rev()
266267
e = NewRevisionDocEvent.objects.create(
267268
type='new_revision',
268269
by=self.user.person,

ietf/meeting/tests_views.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5237,6 +5237,45 @@ def strfdelta(self, tdelta, fmt):
52375237
d["minutes"], d["seconds"] = divmod(rem, 60)
52385238
return fmt.format(**d)
52395239

5240+
def test_interim_request_edit_agenda_updates_doc(self):
5241+
"""Updating the agenda through the request edit form should update the doc correctly"""
5242+
make_interim_test_data()
5243+
meeting = add_event_info_to_session_qs(Session.objects.filter(meeting__type='interim', group__acronym='mars')).filter(current_status='sched').first().meeting
5244+
group = meeting.session_set.first().group
5245+
url = urlreverse('ietf.meeting.views.interim_request_edit', kwargs={'number': meeting.number})
5246+
session = meeting.session_set.first()
5247+
agenda_doc = session.agenda()
5248+
rev_before = agenda_doc.rev
5249+
uploaded_filename_before = agenda_doc.uploaded_filename
5250+
5251+
self.client.login(username='secretary', password='secretary+password')
5252+
r = self.client.get(url)
5253+
form_initial = r.context['form'].initial
5254+
formset_initial = r.context['formset'].forms[0].initial
5255+
data = {
5256+
'group': group.pk,
5257+
'meeting_type': 'single',
5258+
'session_set-0-id': session.id,
5259+
'session_set-0-date': formset_initial['date'].strftime('%Y-%m-%d'),
5260+
'session_set-0-time': formset_initial['time'].strftime('%H:%M'),
5261+
'session_set-0-requested_duration': '00:30',
5262+
'session_set-0-remote_instructions': formset_initial['remote_instructions'],
5263+
'session_set-0-agenda': 'modified agenda contents',
5264+
'session_set-0-agenda_note': formset_initial['agenda_note'],
5265+
'session_set-TOTAL_FORMS': 1,
5266+
'session_set-INITIAL_FORMS': 1,
5267+
}
5268+
data.update(form_initial)
5269+
r = self.client.post(url, data)
5270+
self.assertRedirects(r, urlreverse('ietf.meeting.views.interim_request_details', kwargs={'number': meeting.number}))
5271+
5272+
session = Session.objects.get(pk=session.pk) # refresh
5273+
agenda_doc = session.agenda()
5274+
self.assertEqual(agenda_doc.rev, f'{int(rev_before) + 1:02}', 'Revision of agenda should increase')
5275+
self.assertNotEqual(agenda_doc.uploaded_filename, uploaded_filename_before, 'Uploaded filename should be updated')
5276+
with (Path(agenda_doc.get_file_path()) / agenda_doc.uploaded_filename).open() as f:
5277+
self.assertEqual(f.read(), 'modified agenda contents', 'New agenda contents should be saved')
5278+
52405279
def test_interim_request_details_permissions(self):
52415280
make_interim_test_data()
52425281
meeting = add_event_info_to_session_qs(Session.objects.filter(meeting__type='interim', group__acronym='mars')).filter(current_status='apprw').first().meeting

0 commit comments

Comments
 (0)