From 250af833aa8dfe8ac5a790ad689c82ecaea15636 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Thu, 18 Aug 2016 14:13:06 +0000 Subject: [PATCH] Undid erroneous commit [11820]. - Legacy-Id: 11821 Note: SVN reference [11820] has been migrated to Git commit f4973676588e26fe9c848ab2674490aa6c59116b --- bin/mkdiagram | 5 +++-- ietf/meeting/forms.py | 10 ++-------- ietf/meeting/helpers.py | 6 +++--- ietf/meeting/tests_views.py | 13 ++++--------- ietf/meeting/views.py | 13 ++++--------- .../meeting/interim_announcement_request.txt | 2 +- 6 files changed, 17 insertions(+), 32 deletions(-) diff --git a/bin/mkdiagram b/bin/mkdiagram index 4f015c0ab..ef50ce673 100755 --- a/bin/mkdiagram +++ b/bin/mkdiagram @@ -28,16 +28,17 @@ export PYTHONPATH="$PWD/.." echo "Validating..." ./manage.py validate +echo "Dump tables" +./manage.py sql $apps > tables.sql export PYTHONPATH=`dirname $PWD` module=${PWD##*/} export DJANGO_SETTINGS_MODULE=$module.settings export graph export title - echo "Generate model graph" graph="models-with-names-and-events" title="New IETF Database schema" -${0%/*}/../ietf/manage.py graph_models --exclude="$proxy,$legacy" --title "$title" $apps > $graph.dot && dot -Tpng $graph.dot > $graph.png +modelviz.py --exclude="$proxy,$legacy" --title "$title" $apps > $graph.dot && dot -Tpng $graph.dot > $graph.png echo "Generate new model without names" graph="models-with-names" diff --git a/ietf/meeting/forms.py b/ietf/meeting/forms.py index 803f9915a..b4884b7b8 100644 --- a/ietf/meeting/forms.py +++ b/ietf/meeting/forms.py @@ -180,12 +180,6 @@ class InterimMeetingModelForm(forms.ModelForm): return self.cleaned_data - def is_virtual(self): - if not self.is_bound or self.data.get('in_person'): - return False - else: - return True - def set_group_options(self): '''Set group options based on user accessing the form''' if has_role(self.user, "Secretariat"): @@ -249,7 +243,7 @@ class InterimSessionModelForm(forms.ModelForm): if 'group' in kwargs: self.group = kwargs.pop('group') if 'is_approved' in kwargs: - self.is_approved_or_virtual = kwargs.pop('is_approved_or_virtual') + self.is_approved = kwargs.pop('is_approved') super(InterimSessionModelForm, self).__init__(*args, **kwargs) self.is_edit = bool(self.instance.pk) # setup fields that aren't intrinsic to the Session object @@ -273,7 +267,7 @@ class InterimSessionModelForm(forms.ModelForm): """NOTE: as the baseform of an inlineformset self.save(commit=True) never gets called""" session = super(InterimSessionModelForm, self).save(commit=kwargs.get('commit', True)) - if self.is_approved_or_virtual: + if self.is_approved: session.status_id = 'scheda' else: session.status_id = 'apprw' diff --git a/ietf/meeting/helpers.py b/ietf/meeting/helpers.py index 944c8dd4a..23c604772 100644 --- a/ietf/meeting/helpers.py +++ b/ietf/meeting/helpers.py @@ -563,13 +563,13 @@ def send_interim_approval_request(meetings): cc=cc_list) def send_interim_announcement_request(meeting): - """Sends an email to the secretariat that an interim meeting is ready for - announcement, includes the link to send the official announcement""" + """Sends an email to the secretariat that approval has been granted for an + interim meeting which includes the link to send the official announcement""" group = meeting.session_set.first().group requester = meeting.session_set.first().requested_by (to_email, cc_list) = gather_address_lists('interim_approved') from_email = ('"IETF Meeting Session Request Tool"','session_request_developers@ietf.org') - subject = '{group} - interim meeting ready for announcement'.format(group=group.acronym) + subject = '{group} - Interim Meeting Approved'.format(group=group.acronym) template = 'meeting/interim_announcement_request.txt' announce_url = settings.IDTRACKER_BASE_URL + reverse('ietf.meeting.views.interim_request_details', kwargs={'number': meeting.number}) context = locals() diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index d4e2170ca..9bc9ea712 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -599,7 +599,7 @@ class InterimTests(TestCase): for session in meeting.session_set.all(): self.assertEqual(session.status.slug, 'scheda') self.assertEqual(len(outbox), length_before + 1) - self.assertTrue('ready for announcement' in outbox[-1]['Subject']) + self.assertTrue('Approved' in outbox[-1]['Subject']) def test_interim_approve_by_secretariat(self): make_meeting_test_data() @@ -682,7 +682,7 @@ class InterimTests(TestCase): len(q("#id_group option")) - 1) # -1 for options placeholder - def test_interim_request_single_virtual(self): + def test_interim_request_single(self): make_meeting_test_data() group = Group.objects.get(acronym='mars') date = datetime.date.today() + datetime.timedelta(days=30) @@ -692,8 +692,7 @@ class InterimTests(TestCase): remote_instructions = 'Use webex' agenda = 'Intro. Slides. Discuss.' agenda_note = 'On second level' - length_before = len(outbox) - self.client.login(username="marschairman", password="marschairman+password") + self.client.login(username="secretary", password="secretary+password") data = {'group':group.pk, 'meeting_type':'single', 'city':'', @@ -711,6 +710,7 @@ class InterimTests(TestCase): 'session_set-MAX_NUM_FORMS':1000} r = self.client.post(urlreverse("ietf.meeting.views.interim_request"),data) + self.assertRedirects(r,urlreverse('ietf.meeting.views.upcoming')) meeting = Meeting.objects.order_by('id').last() self.assertEqual(meeting.type_id,'interim') @@ -722,7 +722,6 @@ class InterimTests(TestCase): session = meeting.session_set.first() self.assertEqual(session.remote_instructions,remote_instructions) self.assertEqual(session.agenda_note,agenda_note) - self.assertEqual(session.status.slug,'scheda') timeslot = session.official_timeslotassignment().timeslot self.assertEqual(timeslot.time,dt) self.assertEqual(timeslot.duration,duration) @@ -731,10 +730,6 @@ class InterimTests(TestCase): doc = session.materials.first() path = os.path.join(doc.get_file_path(),doc.filename_with_rev()) self.assertTrue(os.path.exists(path)) - # check notice to secretariat - self.assertEqual(len(outbox), length_before + 1) - self.assertTrue('interim meeting ready for announcement' in outbox[-1]['Subject']) - self.assertTrue('iesg-secretary@ietf.org' in outbox[-1]['To']) def test_interim_request_single_in_person(self): make_meeting_test_data() diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index d5ff61fa4..052789ae1 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -1319,7 +1319,6 @@ def interim_request(request): if form.is_valid() and formset.is_valid(): group = form.cleaned_data.get('group') is_approved = form.cleaned_data.get('approved', False) - is_virtual = form.is_virtual() meeting_type = form.cleaned_data.get('meeting_type') # pre create meeting @@ -1331,16 +1330,14 @@ def interim_request(request): InterimSessionModelForm, user=request.user, group=group, - is_approved_or_virtual=(is_approved or is_virtual))) + is_approved=is_approved)) formset = SessionFormset(instance=meeting, data=request.POST) formset.is_valid() formset.save() sessions_post_save(formset) - if not (is_approved or is_virtual): + if not is_approved: send_interim_approval_request(meetings=[meeting]) - elif not has_role(request.user, 'Secretariat'): - send_interim_announcement_request(meeting=meeting) # series require special handling, each session gets it's own # meeting object we won't see this on edit because series are @@ -1351,7 +1348,7 @@ def interim_request(request): InterimSessionModelForm, user=request.user, group=group, - is_approved_or_virtual=(is_approved or is_virtual))) + is_approved=is_approved)) formset = SessionFormset(instance=Meeting(), data=request.POST) formset.is_valid() # re-validate for session_form in formset.forms: @@ -1368,10 +1365,8 @@ def interim_request(request): series.append(meeting) sessions_post_save([session_form]) - if not (is_approved or is_virtual): + if not is_approved: send_interim_approval_request(meetings=series) - elif not has_role(request.user, 'Secretariat'): - send_interim_announcement_request(meeting=meeting) messages.success(request, 'Interim meeting request submitted') return redirect(upcoming) diff --git a/ietf/templates/meeting/interim_announcement_request.txt b/ietf/templates/meeting/interim_announcement_request.txt index cbdb331ae..fd87ff1ea 100644 --- a/ietf/templates/meeting/interim_announcement_request.txt +++ b/ietf/templates/meeting/interim_announcement_request.txt @@ -1,5 +1,5 @@ {% load ams_filters %}{% load ietf_filters %} -An interim meeting for {{ group.acronym }} has been approved or does not require approval and is ready for announcement. +An interim meeting for {{ group.acronym }} has just been approved. Use this link to officially announce the meeting: {{ announce_url }}