From a66fa82b0660599641ed697a06be302241506006 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Tue, 15 Oct 2019 16:46:12 +0000 Subject: [PATCH] Fixed some review reminders issues. - Legacy-Id: 16863 --- ietf/bin/send-review-reminders | 11 +++++------ ietf/group/tests_review.py | 4 ++-- ietf/review/utils.py | 12 +++++++----- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/ietf/bin/send-review-reminders b/ietf/bin/send-review-reminders index 5c5349f8d..3fb206e47 100755 --- a/ietf/bin/send-review-reminders +++ b/ietf/bin/send-review-reminders @@ -13,7 +13,7 @@ virtualenv_activation = os.path.join(basedir, "env", "bin", "activate_this.py") if os.path.exists(virtualenv_activation): with open(virtualenv_activation, 'rb') as f: code = compile(f.read(), virtualenv_activation, 'exec') - exec(code, globals=dict(__name__="__main__", __file__=virtualenv_activation)) + exec(code, dict(__name__="__main__", __file__=virtualenv_activation)) syslog.openlog(os.path.basename(__file__), syslog.LOG_PID, syslog.LOG_USER) @@ -30,12 +30,11 @@ from ietf.review.utils import ( today = datetime.date.today() for assignment in review_assignments_needing_reviewer_reminder(today): - email_reviewer_reminder(assignment.review_request) - for review_assignment in assignment.review_req.reviewassignment_set.all(): - print("Emailed reminder to {} for review of {} in {} (req. id {})".format(review_assignment.reviewer.address, assignment.review_req.doc_id, assignment.review_req.team.acronym, assignment.review_req.pk)) + email_reviewer_reminder(assignment) + print("Emailed reminder to {} for review of {} in {} (req. id {})".format(assignment.reviewer.address, assignment.review_request.doc_id, assignment.review_request.team.acronym, assignment.review_request.pk)) for assignment, secretary_role in review_assignments_needing_secretary_reminder(today): - email_secretary_reminder(assignment.review_request, secretary_role) + email_secretary_reminder(assignment, secretary_role) review_req = assignment.review_request print("Emailed reminder to {} for review of {} in {} (req. id {})".format(secretary_role.email.address, review_req.doc_id, review_req.team.acronym, review_req.pk)) @@ -43,7 +42,7 @@ period_end_reminders_sent = send_unavaibility_period_ending_reminder(today) print('\n'.join(period_end_reminders_sent)) overdue_reviews_reminders_sent = send_review_reminder_overdue_assignment(today) -print('\n'.join(overdue_reviews_reminders_sent) +print('\n'.join(overdue_reviews_reminders_sent)) open_reviews_reminders_sent = send_reminder_all_open_reviews(today) print('\n'.join(open_reviews_reminders_sent)) diff --git a/ietf/group/tests_review.py b/ietf/group/tests_review.py index 1b0aa8bc2..bd8845ae7 100644 --- a/ietf/group/tests_review.py +++ b/ietf/group/tests_review.py @@ -487,13 +487,13 @@ class ReviewTests(TestCase): # email reviewer empty_outbox() - email_reviewer_reminder(review_req) + email_reviewer_reminder(assignment) self.assertEqual(len(outbox), 1) self.assertTrue(review_req.doc.name in outbox[0].get_payload(decode=True).decode("utf-8")) # email secretary empty_outbox() - email_secretary_reminder(review_req, secretary_role) + email_secretary_reminder(assignment, secretary_role) self.assertEqual(len(outbox), 1) self.assertTrue(review_req.doc.name in outbox[0].get_payload(decode=True).decode("utf-8")) diff --git a/ietf/review/utils.py b/ietf/review/utils.py index 62636d2d0..26ebc39bd 100644 --- a/ietf/review/utils.py +++ b/ietf/review/utils.py @@ -1085,7 +1085,8 @@ def review_assignments_needing_reviewer_reminder(remind_date): return ReviewAssignment.objects.filter(pk__in=assignment_pks).select_related("reviewer", "reviewer__person", "state", "review_request__team") -def email_reviewer_reminder(review_request): +def email_reviewer_reminder(assignment): + review_request = assignment.review_request team = review_request.team deadline_days = (review_request.deadline - datetime.date.today()).days @@ -1099,10 +1100,10 @@ def email_reviewer_reminder(review_request): domain = Site.objects.get_current().domain - settings = ReviewerSettings.objects.filter(person=review_request.reviewer.person, team=team).first() + settings = ReviewerSettings.objects.filter(person=assignment.reviewer.person, team=team).first() remind_days = settings.remind_days_before_deadline if settings else 0 - send_mail(None, [review_request.reviewer.formatted_email()], None, subject, "review/reviewer_reminder.txt", { + send_mail(None, [assignment.reviewer.formatted_email()], None, subject, "review/reviewer_reminder.txt", { "reviewer_overview_url": "https://{}{}".format(domain, overview_url), "review_request_url": "https://{}{}".format(domain, request_url), "review_request": review_request, @@ -1129,7 +1130,8 @@ def review_assignments_needing_secretary_reminder(remind_date): return [ (review_assignments[a_pk], secretary_roles[secretary_role_pk]) for a_pk, secretary_role_pk in assignment_pks.items() ] -def email_secretary_reminder(review_request, secretary_role): +def email_secretary_reminder(assignment, secretary_role): + review_request = assignment.review_request team = review_request.team deadline_days = (review_request.deadline - datetime.date.today()).days @@ -1146,7 +1148,7 @@ def email_secretary_reminder(review_request, secretary_role): settings = ReviewSecretarySettings.objects.filter(person=secretary_role.person_id, team=team).first() remind_days = settings.remind_days_before_deadline if settings else 0 - send_mail(None, [review_request.reviewer.formatted_email()], None, subject, "review/secretary_reminder.txt", { + send_mail(None, [assignment.reviewer.formatted_email()], None, subject, "review/secretary_reminder.txt", { "review_request_url": "https://{}{}".format(domain, request_url), "settings_url": "https://{}{}".format(domain, settings_url), "review_request": review_request,