Change the default template for assigned review emails to name the assigned reviewer. Fixes #2830. Commit ready for merge.
- Legacy-Id: 17062
This commit is contained in:
parent
fabd2f6ca5
commit
38e73b6f89
38
ietf/dbtemplate/migrations/0007_adjust_review_assigned.py
Normal file
38
ietf/dbtemplate/migrations/0007_adjust_review_assigned.py
Normal 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)
|
||||
]
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in a new issue