Merge pull request #6470 from pselkirk/feat-5440
feat: Send mail when slides are approved
This commit is contained in:
commit
c84199630b
27
ietf/mailtrigger/migrations/0004_slides_approved.py
Normal file
27
ietf/mailtrigger/migrations/0004_slides_approved.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Copyright The IETF Trust 2023, All Rights Reserved
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
def forward(apps, schema_editor):
|
||||
MailTrigger = apps.get_model("mailtrigger", "MailTrigger")
|
||||
Recipient = apps.get_model("mailtrigger", "Recipient")
|
||||
mt = MailTrigger.objects.create(
|
||||
slug="slides_approved",
|
||||
desc="Recipients when slides are approved for a given session",
|
||||
)
|
||||
mt.to.add(Recipient.objects.get(slug="slides_proposer"))
|
||||
mt.cc.add(Recipient.objects.get(slug="group_chairs"))
|
||||
|
||||
def reverse(apps, schema_editor):
|
||||
MailTrigger = apps.get_model("mailtrigger", "MailTrigger")
|
||||
mt = MailTrigger.objects.get(pk="slides_approved")
|
||||
mt.delete()
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("mailtrigger", "0003_ballot_approved_charter"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(forward, reverse)
|
||||
]
|
|
@ -6394,6 +6394,7 @@ class MaterialsTests(TestCase):
|
|||
self.assertIsNone(submission.doc)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
empty_outbox()
|
||||
r = self.client.post(url,dict(title='different title',approve='approve'))
|
||||
self.assertEqual(r.status_code,302)
|
||||
self.assertEqual(SlideSubmission.objects.filter(status__slug = 'pending').count(), 0)
|
||||
|
@ -6406,6 +6407,9 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertRegex(r.content.decode(), r"These\s+slides\s+have\s+already\s+been\s+approved")
|
||||
self.assertEqual(len(outbox), 1)
|
||||
self.assertIn(submission.submitter.email_address(), outbox[0]['To'])
|
||||
self.assertIn('Slides approved', outbox[0]['Subject'])
|
||||
|
||||
def test_approve_proposed_slides_multisession_apply_one(self):
|
||||
submission = SlideSubmissionFactory(session__meeting__type_id='ietf')
|
||||
|
|
|
@ -4555,6 +4555,15 @@ def approve_proposed_slides(request, slidesubmission_id, num):
|
|||
submission.status = SlideSubmissionStatusName.objects.get(slug='approved')
|
||||
submission.doc = doc
|
||||
submission.save()
|
||||
(to, cc) = gather_address_lists('slides_approved', group=submission.session.group, proposer=submission.submitter).as_strings()
|
||||
subject = f"Slides approved for {submission.session.meeting} : {submission.session.group.acronym}{' : '+submission.session.name if submission.session.name else ''}"
|
||||
body = render_to_string("meeting/slides_approved.txt", {
|
||||
"to": to,
|
||||
"cc": cc,
|
||||
"submission": submission,
|
||||
"settings": settings,
|
||||
})
|
||||
send_mail_text(request, to, None, subject, body, cc=cc)
|
||||
return redirect('ietf.meeting.views.session_details',num=num,acronym=acronym)
|
||||
elif request.POST.get('disapprove'):
|
||||
# Errors in processing a submit request sometimes result
|
||||
|
|
|
@ -5588,6 +5588,19 @@
|
|||
"model": "mailtrigger.mailtrigger",
|
||||
"pk": "session_scheduled"
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"cc": [
|
||||
"group_chairs"
|
||||
],
|
||||
"desc": "Recipients when slides are approved for a given session",
|
||||
"to": [
|
||||
"slides_proposer"
|
||||
]
|
||||
},
|
||||
"model": "mailtrigger.mailtrigger",
|
||||
"pk": "slides_approved"
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"cc": [
|
||||
|
|
5
ietf/templates/meeting/slides_approved.txt
Normal file
5
ietf/templates/meeting/slides_approved.txt
Normal file
|
@ -0,0 +1,5 @@
|
|||
{% load ietf_filters %}{% autoescape off %}Your proposed slides have been approved for {{ submission.session.meeting }} : {{ submission.session.group.acronym }}{% if submission.session.name %} : {{submission.session.name}}{% endif %}
|
||||
|
||||
Title: {{submission.title}}
|
||||
|
||||
{% endautoescape %}
|
Loading…
Reference in a new issue