Changed email notifications for reviews done to save the message as a Message instance before sending it. Added test code to check that a Message instance is created and matches what goes out.
- Legacy-Id: 12955
This commit is contained in:
parent
3a21e03f8d
commit
541085b1a8
|
@ -12,14 +12,16 @@ from pyquery import PyQuery
|
|||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
import ietf.review.mailarch
|
||||
from ietf.doc.models import DocumentAuthor, Document, DocAlias, RelatedDocument, DocEvent, ReviewRequestDocEvent
|
||||
from ietf.group.models import Group
|
||||
from ietf.message.models import Message
|
||||
from ietf.name.models import ReviewResultName, ReviewRequestStateName, ReviewTypeName, DocRelationshipName
|
||||
from ietf.person.models import Email, Person
|
||||
from ietf.review.models import (ReviewRequest, ReviewerSettings,
|
||||
ReviewWish, UnavailablePeriod, NextReviewerInTeam)
|
||||
from ietf.review.utils import reviewer_rotation_list, possibly_advance_next_reviewer_for_team
|
||||
import ietf.review.mailarch
|
||||
from ietf.person.models import Email, Person
|
||||
from ietf.name.models import ReviewResultName, ReviewRequestStateName, ReviewTypeName, DocRelationshipName
|
||||
from ietf.group.models import Group
|
||||
from ietf.doc.models import DocumentAuthor, Document, DocAlias, RelatedDocument, DocEvent, ReviewRequestDocEvent
|
||||
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.utils.test_data import make_test_data, make_review_data, create_person
|
||||
from ietf.utils.test_utils import login_testing_unauthorized, unicontent, reload_db_objects
|
||||
|
@ -572,6 +574,12 @@ class ReviewTests(TestCase):
|
|||
|
||||
self.assertTrue(settings.MAILING_LIST_ARCHIVE_URL in review_req.review.external_url)
|
||||
|
||||
msgid = outbox[0]["Message-ID"]
|
||||
message = Message.objects.get(msgid=msgid)
|
||||
self.assertEqual(email.utils.parseaddr(outbox[0]["To"]), email.utils.parseaddr(message.to))
|
||||
self.assertEqual(email.utils.parseaddr(outbox[0]["From"]), email.utils.parseaddr(message.frm))
|
||||
self.assertEqual(outbox[0].get_payload(decode=True).decode(str(outbox[0].get_charset())), message.body)
|
||||
|
||||
# check the review document page
|
||||
url = urlreverse('ietf.doc.views_doc.document_main', kwargs={ "name": review_req.review.name })
|
||||
r = self.client.get(url)
|
||||
|
|
|
@ -16,8 +16,9 @@ from ietf.doc.models import (Document, NewRevisionDocEvent, State, DocAlias,
|
|||
from ietf.name.models import ReviewRequestStateName, ReviewResultName, DocTypeName
|
||||
from ietf.review.models import ReviewRequest
|
||||
from ietf.group.models import Group
|
||||
from ietf.person.fields import PersonEmailChoiceField, SearchablePersonField
|
||||
from ietf.ietfauth.utils import is_authorized_in_doc_stream, user_is_person, has_role
|
||||
from ietf.message.models import Message
|
||||
from ietf.person.fields import PersonEmailChoiceField, SearchablePersonField
|
||||
from ietf.review.utils import (active_review_teams, assign_review_request_to_reviewer,
|
||||
can_request_review_of_doc, can_manage_review_requests_for_team,
|
||||
email_review_request_change, make_new_review_request_from_existing,
|
||||
|
@ -27,7 +28,7 @@ from ietf.review import mailarch
|
|||
from ietf.utils.fields import DatepickerDateField
|
||||
from ietf.utils.text import strip_prefix, xslugify
|
||||
from ietf.utils.textupload import get_cleaned_text_file_content
|
||||
from ietf.utils.mail import send_mail
|
||||
from ietf.utils.mail import send_mail_message
|
||||
from ietf.mailtrigger.utils import gather_address_lists
|
||||
from ietf.utils.fields import MultiEmailField
|
||||
|
||||
|
@ -564,12 +565,24 @@ def complete_review(request, name, request_id):
|
|||
frm = role.formatted_email()
|
||||
else:
|
||||
frm = request.user.person.formatted_email()
|
||||
msg = send_mail(request, to, frm, subject,
|
||||
"review/completed_review.txt", {
|
||||
"review_req": review_req,
|
||||
"content": encoded_content.decode("utf-8"),
|
||||
},
|
||||
cc=form.cleaned_data["cc"])
|
||||
related_groups = [ review_req.team, ]
|
||||
if review_req.doc.group:
|
||||
related_groups.append(review_req.doc.group)
|
||||
msg = Message.objects.create(
|
||||
by=request.user.person,
|
||||
subject=subject,
|
||||
frm=frm,
|
||||
to=", ".join(to),
|
||||
cc=form.cleaned_data["cc"],
|
||||
body = render_to_string("review/completed_review.txt", {
|
||||
"review_req": review_req,
|
||||
"content": encoded_content.decode("utf-8"),
|
||||
}),
|
||||
)
|
||||
msg.related_groups.add(*related_groups)
|
||||
msg.related_docs.add(review_req.doc)
|
||||
|
||||
msg = send_mail_message(request, msg)
|
||||
|
||||
list_name = mailarch.list_name_from_email(review_req.team.list_email)
|
||||
if list_name:
|
||||
|
|
Loading…
Reference in a new issue