Merged in [17062] from rjsparks@nostrum.com:

Change the default template for assigned review emails to name the assigned reviewer. Fixes #2830.
 - Legacy-Id: 17073
Note: SVN reference [17062] has been migrated to Git commit 38e73b6f89
This commit is contained in:
Henrik Levkowetz 2019-11-21 01:32:10 +00:00
commit f0adebbe70
4 changed files with 14173 additions and 14135 deletions

View file

@ -0,0 +1,38 @@
# Copyright The IETF Trust 2019, All Rights Reserved
# -*- coding: utf-8 -*-
# Generated by Django 1.11.26 on 2019-11-19 11:47
from __future__ import unicode_literals
from django.db import migrations
def forward(apps, schema_editor):
DBTemplate = apps.get_model('dbtemplate','DBTemplate')
qs = DBTemplate.objects.filter(path='/group/defaults/email/review_assigned.txt')
qs.update(content="""{{ assigner.ascii }} has assigned {{ reviewer.person.ascii }} as a reviewer for this document.
{% if prev_team_reviews %}This team has completed other reviews of this document:{% endif %}{% for assignment in prev_team_reviews %}
- {{ assignment.completed_on }} {{ assignment.reviewer.person.ascii }} -{% if assignment.reviewed_rev %}{{ assignment.reviewed_rev }}{% else %}{{ assignment.review_request.requested_rev }}{% endif %} {{ assignment.result.name }}
{% endfor %}
""")
qs.update(title="Default template for review assignment email")
def reverse(apps, schema_editor):
DBTemplate = apps.get_model('dbtemplate','DBTemplate')
qs = DBTemplate.objects.filter(path='/group/defaults/email/review_assigned.txt')
qs.update(content="""{{ assigner.ascii }} has assigned you as a reviewer for this document.
{% if prev_team_reviews %}This team has completed other reviews of this document:{% endif %}{% for assignment in prev_team_reviews %}
- {{ assignment.completed_on }} {{ assignment.reviewer.person.ascii }} -{% if assignment.reviewed_rev %}{{ assignment.reviewed_rev }}{% else %}{{ assignment.review_request.requested_rev }}{% endif %} {{ assignment.result.name }}
{% endfor %}
""")
class Migration(migrations.Migration):
dependencies = [
('dbtemplate', '0006_add_review_assigned_template'),
]
operations = [
migrations.RunPython(forward, reverse)
]

View file

@ -430,7 +430,7 @@ class ReviewTests(TestCase):
self.assertEqual(len(outbox), 1)
self.assertEqual('"Some Reviewer" <reviewer@example.com>', outbox[0]["To"])
message = outbox[0].get_payload(decode=True).decode("utf-8")
self.assertIn("{} has assigned you".format(secretary.person.ascii), message)
self.assertIn("{} has assigned {}".format(secretary.person.ascii, reviewer.person.ascii), message)
self.assertIn("This team has completed other reviews", message)
self.assertIn("{} -01 Serious Issues".format(reviewer_email.person.ascii), message)

View file

@ -1,10 +1,10 @@
[
{
"fields": {
"content": "{{ assigner.ascii }} has assigned you as a reviewer for this document.\n\n{% if prev_team_reviews %}This team has completed other reviews of this document:{% endif %}{% for assignment in prev_team_reviews %}\n- {{ assignment.completed_on }} {{ assignment.reviewer.person.ascii }} -{% if assignment.reviewed_rev %}{{ assignment.reviewed_rev }}{% else %}{{ assignment.review_request.requested_rev }}{% endif %} {{ assignment.result.name }} \n{% endfor %}\n",
"content": "{{ assigner.ascii }} has assigned {{ reviewer.person.ascii }} as a reviewer for this document.\n\n{% if prev_team_reviews %}This team has completed other reviews of this document:{% endif %}{% for assignment in prev_team_reviews %}\n- {{ assignment.completed_on }} {{ assignment.reviewer.person.ascii }} -{% if assignment.reviewed_rev %}{{ assignment.reviewed_rev }}{% else %}{{ assignment.review_request.requested_rev }}{% endif %} {{ assignment.result.name }} \n{% endfor %}\n",
"group": null,
"path": "/group/defaults/email/review_assigned.txt",
"title": "",
"title": "Default template for review assignment email",
"type": "django",
"variables": null
},
@ -2578,6 +2578,36 @@
"model": "group.groupfeatures",
"pk": "dir"
},
{
"fields": {
"about_page": "ietf.group.views.group_about",
"acts_like_wg": false,
"admin_roles": "[\"chair\",\"secr\"]",
"agenda_type": null,
"create_wiki": true,
"custom_group_roles": true,
"customize_workflow": false,
"default_tab": "ietf.group.views.review_requests",
"docman_roles": "[\"secr\"]",
"groupman_roles": "[\"ad\",\"secr\"]",
"has_chartering_process": false,
"has_default_jabber": false,
"has_documents": false,
"has_meetings": false,
"has_milestones": false,
"has_nonsession_materials": false,
"has_reviews": true,
"has_session_materials": false,
"is_schedulable": false,
"material_types": "[\"slides\"]",
"matman_roles": "[\"ad\",\"secr\"]",
"req_subm_approval": true,
"role_order": "[\"chair\",\"secr\"]",
"show_on_agenda": false
},
"model": "group.groupfeatures",
"pk": "review"
},
{
"fields": {
"about_page": "ietf.group.views.group_about",
@ -2878,36 +2908,6 @@
"model": "group.groupfeatures",
"pk": "program"
},
{
"fields": {
"about_page": "ietf.group.views.group_about",
"acts_like_wg": false,
"admin_roles": "[\"chair\",\"secr\"]",
"agenda_type": null,
"create_wiki": true,
"custom_group_roles": true,
"customize_workflow": false,
"default_tab": "ietf.group.views.review_requests",
"docman_roles": "[\"secr\"]",
"groupman_roles": "[\"ad\",\"secr\"]",
"has_chartering_process": false,
"has_default_jabber": false,
"has_documents": false,
"has_meetings": false,
"has_milestones": false,
"has_nonsession_materials": false,
"has_reviews": true,
"has_session_materials": false,
"is_schedulable": false,
"material_types": "[\"slides\"]",
"matman_roles": "[\"ad\",\"secr\"]",
"req_subm_approval": true,
"role_order": "[\"chair\",\"secr\"]",
"show_on_agenda": false
},
"model": "group.groupfeatures",
"pk": "review"
},
{
"fields": {
"about_page": "ietf.group.views.group_about",
@ -3968,6 +3968,17 @@
"model": "mailtrigger.mailtrigger",
"pk": "resurrection_requested"
},
{
"fields": {
"cc": [],
"desc": "Recipients when an review team secretary send a summary of open review assignments",
"to": [
"group_mail_list"
]
},
"model": "mailtrigger.mailtrigger",
"pk": "review_assignments_summarized"
},
{
"fields": {
"cc": [],
@ -3981,17 +3992,6 @@
"model": "mailtrigger.mailtrigger",
"pk": "review_assignment_changed"
},
{
"fields": {
"cc": [],
"desc": "Recipients when an review team secretary send a summary of open review assignments",
"to": [
"group_mail_list"
]
},
"model": "mailtrigger.mailtrigger",
"pk": "review_assignments_summarized"
},
{
"fields": {
"cc": [],
@ -4509,6 +4509,37 @@
"model": "mailtrigger.mailtrigger",
"pk": "session_minutes_reminder"
},
{
"fields": {
"cc": [
"group_chairs",
"group_mail_list",
"group_responsible_directors",
"logged_in_person"
],
"desc": "Recipients for a normal meeting session request",
"to": [
"session_requests"
]
},
"model": "mailtrigger.mailtrigger",
"pk": "session_requested"
},
{
"fields": {
"cc": [
"group_chairs",
"logged_in_person",
"session_requests"
],
"desc": "Recipients for a meeting session request for more than 2 sessions",
"to": [
"group_responsible_directors"
]
},
"model": "mailtrigger.mailtrigger",
"pk": "session_requested_long"
},
{
"fields": {
"cc": [
@ -4541,37 +4572,6 @@
"model": "mailtrigger.mailtrigger",
"pk": "session_request_not_meeting"
},
{
"fields": {
"cc": [
"group_chairs",
"group_mail_list",
"group_responsible_directors",
"logged_in_person"
],
"desc": "Recipients for a normal meeting session request",
"to": [
"session_requests"
]
},
"model": "mailtrigger.mailtrigger",
"pk": "session_requested"
},
{
"fields": {
"cc": [
"group_chairs",
"logged_in_person",
"session_requests"
],
"desc": "Recipients for a meeting session request for more than 2 sessions",
"to": [
"group_responsible_directors"
]
},
"model": "mailtrigger.mailtrigger",
"pk": "session_requested_long"
},
{
"fields": {
"cc": [
@ -5155,14 +5155,6 @@
"model": "mailtrigger.recipient",
"pk": "nominee"
},
{
"fields": {
"desc": "The requester of an assigned review",
"template": "{% if not skip_review_requested_by %}{{review_assignment.review_request.requested_by.email_address}}{% endif %}"
},
"model": "mailtrigger.recipient",
"pk": "review_assignment_review_req_by"
},
{
"fields": {
"desc": "The reviewer assigned to a review assignment",
@ -5171,6 +5163,14 @@
"model": "mailtrigger.recipient",
"pk": "review_assignment_reviewer"
},
{
"fields": {
"desc": "The requester of an assigned review",
"template": "{% if not skip_review_requested_by %}{{review_assignment.review_request.requested_by.email_address}}{% endif %}"
},
"model": "mailtrigger.recipient",
"pk": "review_assignment_review_req_by"
},
{
"fields": {
"desc": "The reviewed document's responsible area director",
@ -5735,7 +5735,7 @@
"continent": "europe",
"desc": "",
"in_eu": false,
"name": land Islands",
"name": "\u00c5land Islands",
"order": 0,
"used": true
},
@ -5867,7 +5867,7 @@
"continent": "north-america",
"desc": "",
"in_eu": false,
"name": "Saint Barthélemy",
"name": "Saint Barth\u00e9lemy",
"order": 0,
"used": true
},
@ -6083,7 +6083,7 @@
"continent": "africa",
"desc": "",
"in_eu": false,
"name": "Côte d'Ivoire",
"name": "C\u00f4te d'Ivoire",
"order": 0,
"used": true
},
@ -6191,7 +6191,7 @@
"continent": "north-america",
"desc": "",
"in_eu": false,
"name": "Curaçao",
"name": "Cura\u00e7ao",
"order": 0,
"used": true
},
@ -7811,7 +7811,7 @@
"continent": "africa",
"desc": "",
"in_eu": false,
"name": "Réunion",
"name": "R\u00e9union",
"order": 0,
"used": true
},
@ -14092,7 +14092,7 @@
"fields": {
"command": "xym",
"switch": "--version",
"time": "2019-11-06T00:13:08.631",
"time": "2019-11-19T00:12:45.407",
"used": true,
"version": "xym 0.4"
},
@ -14103,7 +14103,7 @@
"fields": {
"command": "pyang",
"switch": "--version",
"time": "2019-11-06T00:13:09.565",
"time": "2019-11-19T00:12:46.149",
"used": true,
"version": "pyang 2.1"
},
@ -14114,7 +14114,7 @@
"fields": {
"command": "yanglint",
"switch": "--version",
"time": "2019-11-06T00:13:09.715",
"time": "2019-11-19T00:12:46.391",
"used": true,
"version": "yanglint 0.14.80"
},
@ -14125,9 +14125,9 @@
"fields": {
"command": "xml2rfc",
"switch": "--version",
"time": "2019-11-06T00:13:10.849",
"time": "2019-11-19T00:12:47.748",
"used": true,
"version": "xml2rfc 2.34.0"
"version": "xml2rfc 2.35.0"
},
"model": "utils.versioninfo",
"pk": 4

View file

@ -468,7 +468,7 @@ def assign_review_request_to_reviewer(request, review_req, reviewer, add_skip=Fa
except DBTemplate.DoesNotExist:
template = DBTemplate.objects.get(path="/group/defaults/email/review_assigned.txt")
context = {'assigner': request.user.person, 'prev_team_reviews': prev_team_reviews}
context = {'assigner': request.user.person, 'reviewer': reviewer, 'prev_team_reviews': prev_team_reviews}
msg = render_to_string(template.path, context, request=request)
email_review_request_change(