Send email to secretariat when an interim meeting has been approved and is waiting for announcement. Commit ready for merge.
- Legacy-Id: 11664
This commit is contained in:
parent
c99cb678c6
commit
54969aa236
|
@ -562,6 +562,23 @@ def send_interim_approval_request(meetings):
|
|||
context,
|
||||
cc=cc_list)
|
||||
|
||||
def send_interim_announcement_request(meeting):
|
||||
"""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('session_requested',group=group,person=requester)
|
||||
from_email = ('"IETF Meeting Session Request Tool"','session_request_developers@ietf.org')
|
||||
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()
|
||||
send_mail(None,
|
||||
to_email,
|
||||
from_email,
|
||||
subject,
|
||||
template,
|
||||
context,)
|
||||
|
||||
def send_interim_cancellation_notice(meeting):
|
||||
"""Sends an email that a scheduled interim meeting has been cancelled."""
|
||||
|
|
|
@ -565,7 +565,20 @@ class InterimTests(TestCase):
|
|||
self.assertEqual(len(outbox), len_before + 1)
|
||||
self.assertTrue('WG Virtual Meeting' in outbox[-1]['Subject'])
|
||||
|
||||
def test_interim_approve(self):
|
||||
def test_interim_approve_by_ad(self):
|
||||
make_meeting_test_data()
|
||||
meeting = Meeting.objects.filter(type='interim', session__status='apprw', session__group__acronym='mars').first()
|
||||
url = urlreverse('ietf.meeting.views.interim_request_details', kwargs={'number': meeting.number})
|
||||
length_before = len(outbox)
|
||||
login_testing_unauthorized(self, "ad", url)
|
||||
r = self.client.post(url, {'approve': 'approve'})
|
||||
self.assertRedirects(r, urlreverse('ietf.meeting.views.interim_pending'))
|
||||
for session in meeting.session_set.all():
|
||||
self.assertEqual(session.status.slug, 'scheda')
|
||||
self.assertEqual(len(outbox), length_before + 1)
|
||||
self.assertTrue('Approved' in outbox[-1]['Subject'])
|
||||
|
||||
def test_interim_approve_by_secretariat(self):
|
||||
make_meeting_test_data()
|
||||
meeting = Meeting.objects.filter(type='interim', session__status='apprw', session__group__acronym='mars').first()
|
||||
url = urlreverse('ietf.meeting.views.interim_request_details', kwargs={'number': meeting.number})
|
||||
|
|
|
@ -47,6 +47,7 @@ from ietf.meeting.helpers import can_request_interim_meeting, get_announcement_i
|
|||
from ietf.meeting.helpers import sessions_post_save, is_meeting_approved
|
||||
from ietf.meeting.helpers import send_interim_cancellation_notice
|
||||
from ietf.meeting.helpers import send_interim_approval_request
|
||||
from ietf.meeting.helpers import send_interim_announcement_request
|
||||
from ietf.utils.mail import send_mail_message
|
||||
from ietf.utils.pipe import pipe
|
||||
from ietf.utils.pdf import pdf_pages
|
||||
|
@ -1280,6 +1281,7 @@ def interim_request_details(request, number):
|
|||
if has_role(request.user, 'Secretariat'):
|
||||
return redirect(interim_send_announcement, number=number)
|
||||
else:
|
||||
send_interim_announcement_request(meeting)
|
||||
return redirect(interim_pending)
|
||||
if request.POST.get('disapprove') and can_approve_interim_request(meeting, request.user):
|
||||
meeting.session_set.update(status_id='disappr')
|
||||
|
|
8
ietf/templates/meeting/interim_announcement_request.txt
Normal file
8
ietf/templates/meeting/interim_announcement_request.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
{% load ams_filters %}{% load ietf_filters %}
|
||||
An interim meeting for {{ group.acronym }} has just been approved.
|
||||
|
||||
Use this link to officially announce the meeting:
|
||||
{{ announce_url }}
|
||||
|
||||
|
||||
{% include "meeting/interim_info.txt" %}
|
Loading…
Reference in a new issue