feat: Send mail when slides are approved (#5440)
This commit is contained in:
parent
16f9e0e974
commit
b04ffe1631
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)
|
||||
]
|
|
@ -6406,6 +6406,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,17 @@ 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()
|
||||
msg_txt = render_to_string("meeting/slides_approved.txt", {
|
||||
"to": to,
|
||||
"cc": cc,
|
||||
"submission": submission,
|
||||
"settings": settings,
|
||||
})
|
||||
msg = infer_message(msg_txt)
|
||||
msg.by = request.user.person
|
||||
msg.save()
|
||||
send_mail_message(request, msg)
|
||||
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": [
|
||||
|
|
10
ietf/templates/meeting/slides_approved.txt
Normal file
10
ietf/templates/meeting/slides_approved.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
{% load ietf_filters %}{% autoescape off %}From: {{settings.DEFAULT_FROM_EMAIL}}
|
||||
To: {{to}}{% if cc %}
|
||||
Cc: {{cc}}{% endif %}
|
||||
Subject: Slides approved for {{ submission.session.meeting }} : {{ submission.session.group.acronym }}{% if session.name %} : {{submission.session.name}}{% endif %}
|
||||
|
||||
Your proposed slides have been approved for {{ submission.session.meeting }} : {{ submission.session.group.acronym }}{% if session.name %} : {{submission.session.name}}{% endif %}
|
||||
|
||||
Title: {{submission.title}}
|
||||
|
||||
{% endautoescape %}
|
Loading…
Reference in a new issue