Fix issue with interim meeting series of more than two meetings. Changed to not send meeting change notifications for meetings not yet announced. Commit ready for merge.
- Legacy-Id: 11781
This commit is contained in:
parent
4abb5026d3
commit
f65335e258
|
@ -1026,7 +1026,8 @@ class InterimTests(TestCase):
|
|||
self.assertEqual(len(outbox), length_before + 1)
|
||||
self.assertTrue('Interim Meeting Cancelled' in outbox[-1]['Subject'])
|
||||
|
||||
def test_interim_request_edit(self):
|
||||
def test_interim_request_edit_no_notice(self):
|
||||
'''Edit a request. No notice should go out if it hasn't been announced yet'''
|
||||
make_meeting_test_data()
|
||||
meeting = Meeting.objects.filter(type='interim', session__status='apprw', session__group__acronym='mars').first()
|
||||
group = meeting.session_set.first().group
|
||||
|
@ -1058,13 +1059,50 @@ class InterimTests(TestCase):
|
|||
data.update(form_initial)
|
||||
r = self.client.post(url, data)
|
||||
self.assertRedirects(r, urlreverse('ietf.meeting.views.interim_request_details', kwargs={'number': meeting.number}))
|
||||
self.assertEqual(len(outbox),length_before)
|
||||
session = meeting.session_set.first()
|
||||
timeslot = session.official_timeslotassignment().timeslot
|
||||
self.assertEqual(timeslot.time,new_time)
|
||||
|
||||
def test_interim_request_edit(self):
|
||||
'''Edit request. Send notice of change'''
|
||||
make_meeting_test_data()
|
||||
meeting = Meeting.objects.filter(type='interim', session__status='sched', session__group__acronym='mars').first()
|
||||
group = meeting.session_set.first().group
|
||||
url = urlreverse('ietf.meeting.views.interim_request_edit', kwargs={'number': meeting.number})
|
||||
# test unauthorized access
|
||||
self.client.login(username="ameschairman", password="ameschairman+password")
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 403)
|
||||
# test authorized use
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
# post changes
|
||||
length_before = len(outbox)
|
||||
form_initial = r.context['form'].initial
|
||||
formset_initial = r.context['formset'].forms[0].initial
|
||||
new_time = formset_initial['time'] + datetime.timedelta(hours=1)
|
||||
data = {'group':group.pk,
|
||||
'meeting_type':'single',
|
||||
'session_set-0-id':meeting.session_set.first().id,
|
||||
'session_set-0-date':formset_initial['date'].strftime('%Y-%m-%d'),
|
||||
'session_set-0-time':new_time.strftime('%H:%M'),
|
||||
'session_set-0-requested_duration':formset_initial['requested_duration'],
|
||||
'session_set-0-remote_instructions':formset_initial['remote_instructions'],
|
||||
#'session_set-0-agenda':formset_initial['agenda'],
|
||||
'session_set-0-agenda_note':formset_initial['agenda_note'],
|
||||
'session_set-TOTAL_FORMS':1,
|
||||
'session_set-INITIAL_FORMS':1}
|
||||
data.update(form_initial)
|
||||
r = self.client.post(url, data)
|
||||
self.assertRedirects(r, urlreverse('ietf.meeting.views.interim_request_details', kwargs={'number': meeting.number}))
|
||||
self.assertEqual(len(outbox),length_before+1)
|
||||
self.assertTrue('CHANGED' in outbox[-1]['Subject'])
|
||||
session = meeting.session_set.first()
|
||||
timeslot = session.official_timeslotassignment().timeslot
|
||||
self.assertEqual(timeslot.time,new_time)
|
||||
|
||||
|
||||
def test_interim_request_details_permissions(self):
|
||||
make_meeting_test_data()
|
||||
meeting = Meeting.objects.filter(type='interim',session__status='apprw',session__group__acronym='mars').first()
|
||||
|
|
|
@ -1329,7 +1329,7 @@ def interim_request_edit(request, number):
|
|||
sessions_post_save(formset)
|
||||
|
||||
message = 'Interim meeting request saved'
|
||||
if form.has_changed() or formset.has_changed():
|
||||
if (form.has_changed() or formset.has_changed()) and meeting.session_set.filter(status='sched'):
|
||||
send_interim_change_notice(request, meeting)
|
||||
message = message + ' and change announcement sent'
|
||||
messages.success(request, message)
|
||||
|
|
|
@ -35,18 +35,19 @@ var interimRequest = {
|
|||
var total = +totalField.val();
|
||||
var meeting_type = $('input[name="meeting_type"]:checked').val();
|
||||
|
||||
el.find(':input').each(function() {
|
||||
// increment formset counter
|
||||
template.find(':input').each(function() {
|
||||
var name = $(this).attr('name').replace('-' + (total-1) + '-','-' + total + '-');
|
||||
var id = 'id_' + name;
|
||||
$(this).attr({'name': name, 'id': id}).val('');
|
||||
});
|
||||
|
||||
el.find('label').each(function() {
|
||||
template.find('label').each(function() {
|
||||
var newFor = $(this).attr('for').replace('-' + (total-1) + '-','-' + total + '-');
|
||||
$(this).attr('for', newFor);
|
||||
});
|
||||
|
||||
el.find('div.utc-time').each(function() {
|
||||
template.find('div.utc-time').each(function() {
|
||||
var newId = $(this).attr('id').replace('-' + (total-1) + '-','-' + total + '-');
|
||||
$(this).attr('id', newId);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue